ArcGIS for Android入门程序之DrawTool2.0
16lz
2021-01-25
来自: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,使用方法如下:
[java] view plain copy- <spanstyle="font-family:CourierNew;font-size:18px;">packagecn.com.esrichina.drawtool;
- importandroid.app.Activity;
- importandroid.os.Bundle;
- importandroid.view.Menu;
- importandroid.view.MenuInflater;
- importandroid.view.MenuItem;
- importcom.esri.android.map.GraphicsLayer;
- importcom.esri.android.map.MapView;
- importcom.esri.android.map.ags.ArcGISTiledMapServiceLayer;
- publicclassDrawToolActivityextendsActivityimplementsDrawEventListener{
- privateMapViewmapView;
- privateGraphicsLayerdrawLayer;
- privateDrawTooldrawTool;
- publicvoidonCreate(BundlesavedInstanceState){
- super.onCreate(savedInstanceState);
- setContentView(R.layout.main);
- this.mapView=(MapView)this.findViewById(R.id.map);
- //添加底图
- this.mapView
- .addLayer(newArcGISTiledMapServiceLayer(
- "http://www.arcgisonline.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer"));
- //在drawLayer上绘制几何图形
- this.drawLayer=newGraphicsLayer();
- this.mapView.addLayer(this.drawLayer);
- this.drawTool=newDrawTool(this.mapView);
- //此类实现DawEventListener接口
- this.drawTool.addEventListener(this);
- }
- publicbooleanonCreateOptionsMenu(Menumenu){
- MenuInflaterinflater=this.getMenuInflater();
- inflater.inflate(R.menu.menu,menu);
- returntrue;
- }
- @Override
- publicbooleanonOptionsItemSelected(MenuItemitem){
- switch(item.getItemId()){
- caseR.id.point:
- drawTool.activate(DrawTool.POINT);
- break;
- caseR.id.envelope:
- drawTool.activate(DrawTool.ENVELOPE);
- break;
- caseR.id.polygon:
- drawTool.activate(DrawTool.POLYGON);
- break;
- caseR.id.polyline:
- drawTool.activate(DrawTool.POLYLINE);
- break;
- caseR.id.freehandpolygon:
- drawTool.activate(DrawTool.FREEHAND_POLYGON);
- break;
- caseR.id.freehandpolyline:
- drawTool.activate(DrawTool.FREEHAND_POLYLINE);
- break;
- caseR.id.circle:
- drawTool.activate(DrawTool.CIRCLE);
- break;
- caseR.id.clear:
- this.drawLayer.removeAll();
- this.drawTool.deactivate();
- break;
- }
- returntrue;
- }
- //实现DrawEventListener中定义的方法
- publicvoidhandleDrawEvent(DrawEventevent){
- //将画好的图形(已经实例化了Graphic),添加到drawLayer中并刷新显示
- this.drawLayer.addGraphic(event.getDrawGraphic());
- }
- @Override
- protectedvoidonDestroy(){
- super.onDestroy();
- }
- }</span>
在Android模拟器执行效果图如下:
更多相关文章
- ubuntu gradle编译总结
- android support-v4、v7、v13
- android 交叉编译工具的设置
- Android(安卓)Studio 无法引用org.apache.http解决办法
- Android(安卓)DataBinding 快速入门
- Eclipse导入Android项目的正确方法
- 导入xUtils_3 工程到Android(安卓)Studio
- Android获取APP的应用程序名称、包名、图标,版本号基本信息
- Phonegap开发Android版本的二维码扫码