ArcGIS for Android入門程式之DrawTool2.0

來源:互聯網
上載者:User

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;}@Overridepublic 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());}@Overrideprotected void onDestroy() {super.onDestroy();}}

在Android模擬器執行如下:

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.