ArcGIS Android Runtime100.1.0
来源:互联网 发布:淘宝官方网站注册免费 编辑:程序博客网 时间:2024/06/10 01:33
草图绘制
在地图上进行涂鸦操作之后保存图形数据。
- SketchEditor 草图编辑器,相当于地图绘制监听
开始绘制操作准备
if (_sketchEditor == null) { _sketchEditor = new SketchEditor(); _mMapView.setSketchEditor(_sketchEditor); } _sketchEditor.addGeometryChangedListener(this); _sketchEditor.start(SketchCreationMode.FREEHAND_LINE);
其中SketchCreationMode里有几种类型:
POINT, MULTIPOINT, POLYLINE, POLYGON, FREEHAND_LINE, FREEHAND_POLYGON;
支持手绘涂鸦的有:
FREEHAND_LINE, FREEHAND_POLYGON;
在进行绘制完成之后需要进行保存Geometry:
@Override public void geometryChanged(SketchGeometryChangedEvent e) { //获得Geometry,进行保存 if (_sketchEditor.isSketchValid()) { Geometry currentGeo = e.getGeometry(); geometries.add(currentGeo); } }
其中如果要二次进行涂鸦的时候还能继续绘制草图而不是清除上一次的草图数据,可以设置mapView的Touch监听。
难点在于SketchEditor会与OnTouch的监听有冲突:
if (_sketchEditor == null) { _sketchEditor = new SketchEditor(); _model.getMapView().setSketchEditor(_sketchEditor); } _sketchEditor.addGeometryChangedListener(this); _sketchEditor.start(_onInputType.getInputType()); //添加地图的Touch监听 DefaultMapViewOnTouchListener lo = (DefaultMapViewOnTouchListener) _model.getMapView().getOnTouchListener(); _model.getMapView().setOnTouchListener(new SketchDrawTouchEvent(activity, _model.getMapView(), lo, _sketchEditor));
其中SketchDrawTouchEvent.java:
public class SketchDrawTouchEvent extends DefaultMapViewOnTouchListener { private View.OnTouchListener _listener; private DefaultMapViewOnTouchListener _maplistener; private SketchEditor sketchEditor; public SketchDrawTouchEvent(Context context, MapView mapView, View.OnTouchListener listener, SketchEditor sketchEditor) { super(context, mapView); _listener = listener; _maplistener = (DefaultMapViewOnTouchListener) listener; this.sketchEditor = sketchEditor; } @Override public boolean onUp(MotionEvent e) { return super.onUp(e); } @Override public boolean onTouch(View v, MotionEvent e) { //这里实现监听选择性调用 if (e.getAction() == MotionEvent.ACTION_UP) { CgoMFSFreeDraw.refreshGraphics(); } if (_maplistener != null) { return _maplistener.onTouch(v, e); } if (_listener != null) return _listener.onTouch(v, e); return false; }}
在geometryChanged方法中进行不断的Geometry保存,当触发结束操作,完成草图绘制。
以上。
阅读全文
0 0
- ArcGIS Android Runtime100.1.0
- ArcGIS for Android Runtime100 基本操作(一)——图层加载和切换
- ArcGIS for Android Runtime100 基本操作(二)——地图控件的常见操作
- ArcGIS for Android Runtime100 基本操作(三)——离线数据空间查询
- ArcGIS for Android Runtime100 基本操作(四)——GPS定位
- ArcGIS for Android Runtime100 基本操作(五)——绘制图层和符号渲染
- ArcGIS for Android Runtime100 基本操作(六)——移动地图包MMPK的使用
- ArcGIS for Android Runtime100 基本操作(七)——三维地图初步使用
- ArcGIS for Android Runtime100 基本操作(一)——点线面测距离长度和面积
- [arcgis for android]arcgis for android 定位
- Android Arcgis入门(一) Arcgis开发配置
- arcgis android error
- ArcGIS for Android
- ArcGIS在Android的
- arcgis for android 学习
- ArcGis for Android定位
- Android培训之arcgis
- android ArcGIS学习笔记
- 实验 缓存,缓存穿透
- java中Integer数值比较
- UnicodeDecodeError: 'utf-8' codec can't decode byte 0xc9 in position 167
- 欢迎使用CSDN-markdown编辑器
- angularjs表达式
- ArcGIS Android Runtime100.1.0
- web前端开发中你必须要了解掌握的DOM节点方法!
- IPO聘请了Symantec公司的前首席财务官
- 连接查询
- pip使用
- iOS WKWebview 禁止长按(超链接、图片、文本...)弹出效果
- mongodb 权限设置
- NOIP 1998 普及组 复赛 阶乘之和
- 函数指针