http://blog.csdn.net/arcgis_mobile/article/details/7801467 GIS的开发中,什么时候都少不了地图操作。ArcGIS for Android中,地图组件就是MapView,MapView是基于Android中ViewGr ...
http://blog.csdn.net/arcgis_mobile/article/details/7801467
GIS的开发中,什么时候都少不了地图操作。ArcGIS for Android中,地图组件就是MapView,MapView是基于Android中ViewGroup的一个类(参考),也是ArcGIS Runtime SDK for Android中的地图容器,与很多ArcGIS API中的Map、MapControl类的作用是一样的。
地图常见的操作有缩放、旋转、平移、获取范围、比例尺、分辨率等信息,以及常用的手势操作,其中,经常使用到的功能和常见问题有以下几个:
1)将地图缩放到指定的比例尺/分辨率/级别;
2)设置地图的最大最小缩放级别;
3)获取地图上某点的经纬度坐标;
4)地图的手势操作;
5)地图无法显示。
下面内容会为您详细解答以上问题。
1、获取/设置比例尺、分辨率、中心点、范围;
ArcGIS forAndroid中,MapView具有很多与地图操作有关的方法,其中,与地图的比例尺、分辨率、中心点、范围有关的方法如下:
获取/设置地图的中心点、范围、分辨率、比例尺 |
返回类型 | 方法 | 说明 |
Void | centerAt(Point centerPt, Boolean animated) | 将地图居中到指定的点 |
Point | getCenter() | 获取地图中心点 |
Polygon | getExtent() | 获取地图最小外包矩形 |
Envelope | getMapBoundaryExtent() | 获取地图的边界 |
Void | setExtent(Geometry geometry) | 将地图放大到指定的范围,并将该geometry的bound作为地图当前的extent |
Void | setExtent(Geometry geometry, int padding) | 将地图放大到指定的geometry以便geometry适应地图的bound |
Double | getMaxResolution() | 获取地图最大分辨率 |
Void | setMaxResolution(double maxResolution) | 设置地图最大分辨率 |
Double | getMinResolution() | 获取地图最小分辨率 |
Void | setMinResolution(double minResolution) | 设置地图最小分辨率 |
Double | getResolution() | 获取当前地图分辨率 |
Void | setResolution( double res) | 设置当前地图分辨率 |
Double | getScale() | 获取当前地图比例尺 |
Void | setScale(double scale) | 设置当前地图比例尺 |
要获取/设置地图的比例尺、初始分辨率、范围、中心点等信息,直接使用上述方法即可,非常简单,在此不赘述,示例代码如下:
map.setScale(18489297.737236);//设置地图初始化时的比例尺;
map.setAllowRotationByPinch(true);//设置是否允许地图通过pinch方式旋转;
map.setRotationAngle(15.0);//设置地图的旋转角度;
……
2、地图缩放、平移和旋转;
在初始化时将地图设定为某种级别(找到该级别对应的分辨率、比例尺):
map.setResolution(该级别对应的分辨率);
至于如何获取当前地图等级,没办法,先获取resolution,然后去rest服务目录中对照取其级别吧。
2.4 旋转地图
可以使用setRotationAngle(double degree)和setRotationAngle(doubledegree, float pivotX, float pivotY)来实现将地图旋转一定的角度,要实现通过手势进行旋转,需要通过setOnPinchListener(OnPinchListener onPinchListener)监听来实现。如:
public void onCreate(Bundle savedInstanceState, OnPinchListener onPinchListener) { super.onCreate(savedInstanceState); setContentView(R.layout.main); map = (MapView)findViewById(R.id.map); …… map.setAllowRotationByPinch(true); //是否允许使用Pinch方式旋转地图 map.setRotationAngle(15.0); //初始化时将地图旋转15度,参数为正时按逆时针方向旋转。 } |
原标题:ArcGIS for Android地图控件的5大常见操作转
关键词:Android
*特别声明:以上内容来自于网络收集,著作权属原作者所有,如有侵权,请联系我们:
admin#shaoqun.com
(#换成@)。