ArcGIS for Android入門プログラムのDrawTool 2.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をカプセル化します.使用方法は以下の通りです.
このプログラムは主に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シミュレータで実行する効果図は以下の通りです.