ArcGIS for Android入门程序之DrawTool2.0
来自:http://blog.csdn.net/arcgis_mobile/article/details/8084763
GISpace博客《ArcGIS for Android入门程序之DrawTool》http://blog.csdn.net/gispace/article/details/6723459 在ArcGIS Android SDK 0.9版本实现绘制各种几个图形。ArcGIS Android SDK目前版本为2.0,较之前版本变化较大,故将之前版本移植到2.0版本下。源代码下载地址:http://download.csdn.net/detail/arcgis_mobile/4659389
该程序主要说明如何处理与MapView交互的各种事件,以订阅发布模式封装几何图形绘制工具类DrawTool,使用方法如下:
- <span style="font-family:Courier New;font-size:18px;">package cn.com.esrichina.drawtool;
- import android.app.Activity;
- import android.os.Bundle;
- import android.view.Menu;
- import android.view.MenuInflater;
- import android.view.MenuItem;
- import com.esri.android.map.GraphicsLayer;
- import com.esri.android.map.MapView;
- import com.esri.android.map.ags.ArcGISTiledMapServiceLayer;
- public class DrawToolActivity extends Activity implements DrawEventListener {
- private MapView mapView;
- private GraphicsLayer drawLayer;
- private DrawTool drawTool;
- public void onCreate(Bundle savedInstanceState) {
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- this.mapView = (MapView) this.findViewById(R.id.map);
- // 添加底图
- this.mapView
- .addLayer(new ArcGISTiledMapServiceLayer(
- "http://www.arcgisonline.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer"));
- // 在drawLayer上绘制几何图形
- this.drawLayer = new GraphicsLayer();
- this.mapView.addLayer(this.drawLayer);
- this.drawTool = new DrawTool(this.mapView);
- // 此类实现DawEventListener接口
- this.drawTool.addEventListener(this);
- }
- public boolean onCreateOptionsMenu(Menu menu) {
- MenuInflater inflater = this.getMenuInflater();
- inflater.inflate(R.menu.menu, menu);
- return true;
- }
- @Override
- public boolean onOptionsItemSelected(MenuItem item) {
- switch (item.getItemId()) {
- case R.id.point:
- drawTool.activate(DrawTool.POINT);
- break;
- case R.id.envelope:
- drawTool.activate(DrawTool.ENVELOPE);
- break;
- case R.id.polygon:
- drawTool.activate(DrawTool.POLYGON);
- break;
- case R.id.polyline:
- drawTool.activate(DrawTool.POLYLINE);
- break;
- case R.id.freehandpolygon:
- drawTool.activate(DrawTool.FREEHAND_POLYGON);
- break;
- case R.id.freehandpolyline:
- drawTool.activate(DrawTool.FREEHAND_POLYLINE);
- break;
- case R.id.circle:
- drawTool.activate(DrawTool.CIRCLE);
- break;
- case R.id.clear:
- this.drawLayer.removeAll();
- this.drawTool.deactivate();
- break;
- }
- return true;
- }
- // 实现DrawEventListener中定义的方法
- public void handleDrawEvent(DrawEvent event) {
- // 将画好的图形(已经实例化了Graphic),添加到drawLayer中并刷新显示
- this.drawLayer.addGraphic(event.getDrawGraphic());
- }
- @Override
- protected void onDestroy() {
- super.onDestroy();
- }
- }</span>
在Android模拟器执行效果图如下:

ArcGIS for Android入门程序之DrawTool2.0的更多相关文章
- 【Arcgis for android】程序运行出错原因分析及解决(超详细)
查看项目下是否有libs文件夹,正常情况下其中应该有 如果没有,在项目上右键 ->arcgis tools->convert to arcgis android project 排除了上述 ...
- 【Arcgis for android】相关教程收集自网络
请加入qq群:143501213 一起交流和学习 推荐博客: 张云飞VIR http://www.cnblogs.com/vir56k/tag/arcgis%20for%20android/ arcg ...
- 使用 Eclipse PhoneGap 构建 Android 应用程序入门
Eclipse 是一种支持多种技术的开源集成开发环境 (IDE),但本文重点介绍 Java 支持,这也是 Android 应用程序的“母语”.Android 是 Google 发布的开源移动操作系统. ...
- ArcGIS for Android 10.1.1API 中文标注导致程序异常崩溃问题
1.前言 问题:在部分Android机型中使用ArcGIS for Android 10.1.1 API 中文标注导致程序异常崩溃. 说明:手里有两台机器一台是Nexus4,原生系统,版本4.4.4, ...
- 关于怎么快速学好Android应用程序开发及其其他编程语言(大牛和高手勿喷,此篇文章也适合刚入门小师弟和小师妹)
无论你是从.NET转过来的也好 还是从PHP转过来的等等等,能看到这篇文章的人一般都是想快速转行到Android应用程序开发,希望我的这篇文章能勉励到各位的同时,也能勉励我自己. 1.编程语言基本都会 ...
- Android入门学习:Android 系统框架及应用程序执行过程
Android基础知识学习 新手上路,还请多多帮助.由于初学,博客内容难免有不正确的地方,还请各位多多指教,相互学习! 主要内容: 1.Android层次架构及主要功能 2.Android编程模型,程 ...
- ArcGIS for Android地图控件的5大常见操作
GIS的开发中,什么时候都少不了地图操作.ArcGIS for Android中,地图组件就是MapView,MapView是基于Android中ViewGroup的一个类(参考),也是ArcGIS ...
- 【转】Xamarin.Android 入门之:Xamarin+vs2015 环境搭建
Xamarin.Android 入门之:Xamarin+vs2015 环境搭建 一.前言 此篇博客主要写了如何使用搭建xamarin开发的环境,防止我自己万一哪天电脑重装系统了,可以直接看这篇博客 ...
- 【转】详解使用tcpdump、wireshark对Android应用程序进行抓包并分析
原文网址:http://blog.csdn.net/gebitan505/article/details/19044857 本文主要介绍如何使用tcpdump和wireshark对Android应用程 ...
随机推荐
- 手动配置wamp环境(1)--apache安装与基本操作
Apache服务器简介: Apache是世界使用排名第一的Web服务器软件.它可以运行在几乎所有广泛使用的计算机平台上,由于其跨平台和安全性被广泛使用,是最流行的Web服务器端软件之一. 安装apac ...
- JPA调用存储过程
@Transactional public BasAccount findByAccount(String account) { System.out.println(account); Query ...
- Jmeter之定时器
转自:https://www.cnblogs.com/imyalost/p/6004678.html 一.定时器的作用域 1.定时器是在每个sampler(采样器)之前执行的,而不是之后(无论定时器位 ...
- 使用Caliburn.Micro系列2:Convention
CM中实现一个比较有意思的特性,就是智能匹配. 通常使用MVVM的写法:在匹配 View和ViewModel时会使用DataContext,在匹配数据属性时使用Binding,在匹配事件命令时使用Co ...
- vue slot的使用介绍
插槽:slot (不知道我这样理解是不是对的,欢迎大佬指点) 具体是什么样子的,请看例子说明 父组件代码 子组件代码 结果 可以看到 ,结果是父组件里面内容显示了,子组件内容显示了,但是在父组件中插入 ...
- rbac组件之权限操作(四)
对于权限表的操作有两种方式,第一种是一个个的权限进行curd,另外一种是批量操作,自动发现django程序中的路由,进行批量curd,首先介绍第一种方式. 因为在列出菜单时,已经将权限列表列出来了,所 ...
- UVaLive 4868 Palindrometer (暴力 / 构造)
题意: 给定一个固定长度的字符串, 字符串是一个含有前导0的数字, 问这个数字加上多少能构成一个回文字符串. 分析: 其实这题有很多种方法, 方法12是我做完后看别人代码总结的, 方法3是我当时想的一 ...
- 04003_CSS
1.DIV相关的技术 (1)DIV是一个html标签,一个块级元素(单独显示一行).它单独使用没有任何意义,必须结合CSS来使用,主要用于页面的布局: (2)Span是一个html标签,一个内联元素( ...
- Codeforces Round #364 (Div. 2),只有A与B
A. Cards time limit per test 1 second memory limit per test 256 megabytes input standard input outpu ...
- 7-8 哈利·波特的考试(25 分)(图的最短路径Floyd算法)
7-8 哈利·波特的考试(25 分) 哈利·波特要考试了,他需要你的帮助.这门课学的是用魔咒将一种动物变成另一种动物的本事.例如将猫变成老鼠的魔咒是haha,将老鼠变成鱼的魔咒是hehe等等.反方向变 ...