ArcGIS for Android入門程式之DrawTool2.0
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,使用方法如下:
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();
}
}
在Android模擬器執行效果圖如下:
相關文章
- ArcGis api配合vue開發入門系列(一)引入arcgis api以及載入地圖APIVue地圖
- Android入門之ListView (二)AndroidView
- Android入門之ListView (一)AndroidView
- 通俗易懂的ArcGis開發快速入門
- Android 自定義 View 之入門篇AndroidView
- MyBatis 框架之快速入門程式MyBatis框架
- ArcGIS Runtime For AndroidAndroid
- ArcGIS API for Silverlight開發入門準備API
- Android 測試入門之---Monkey testAndroid
- Android程式設計基礎 • 【第1章 Android程式入門】Android程式設計
- ArcGIS VBA - VBA+AO入門15例完全註釋版
- ACM入門之新手入門ACM
- Android入門教程 | RecyclerView使用入門AndroidView
- Mac之Android Studio開發NDK入門MacAndroid
- Android入門第七篇之ListViewAndroidView
- Java入門之基礎程式設計Java程式設計
- arcgis api for js入門開發系列十九圖層線上編輯APIJS
- android 入門- 詞彙Android
- Android Bluetooth 入門Android
- 《Android Gradle權威指南》之Gradle入門AndroidGradle
- Android開發入門之熟悉開發環境Android開發環境
- 程式設計入門之學哪種程式語言?程式設計
- Android入門教程 | Kotlin協程入門AndroidKotlin
- 《Flutter 入門經典》之“Flutter 入門 ”Flutter
- Android Camera 程式設計從入門到精通Android程式設計
- Android WorkManager使用入門Android
- Android新手入門1Android
- Android學習 - 入門Android
- Android L動畫入門Android動畫
- 【Android開發入門教程】三.Activity入門指南!Android
- 【Android開發入門教程】二.Android應用程式結構分析Android
- 機器學習之小白入門機器學習
- Alfred之workflow入門Alfred
- Qt入門之概述QT
- 【Android開發入門教程】四.使用者介面之LayoutAndroid
- mybatis入門程式MyBatis
- 小程式入門
- 【dubbo】入門程式