ArcGIS for Android
ArcGIS for Android 地图控件的几大常见操
作
原创:CSDN-ArcGIS_Mobile 的专
栏; 整理:勇气魄力
2013/3/20
ArcGIS for Android
地图控件的
5
大常见操作
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()
获取地图最小外包矩形
Envelop
e
getMapBoundaryExtent()
获取地图的边界
Void setExtent(Geometry geometry)
将地图放大到指定的范围,并将该 geometry 的
bound 作为地图当前的 extent
Void setExtent(Geometry geometry, int
将地图放大到指定的 geometry 以便 geometry 适应
2
padding)
地图的 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、地图缩放、平移和旋转;
与缩放和旋转有关的地图事件如下:
地图缩放、旋转
返回类型 方法 说明
Void zoomin()
Void zoomout()
Void zoomTo(Point centerPt, float factor)
将地图放荡到指定点
Void zoomToResolution(Point centerPt,
double res)
将地图放大到指定分辨率
Void zoomToScale(Point centerPt, double
scale)
将地图放大到指定比例尺
Double getRotationAngle()
返回当前地图旋转角度(单位 degree)
Void setRotationAngle(double degree)
将地图按照指定的角度(单位 degree)旋转,度数
为正数则按逆时针方向旋转
Void setRotationAngle(double degree, float
pivotX, float pivotY)
将地图按指定的点和角度旋转,角度为正数按逆时针
Void setAllowRotationByPinch(boolean
allowRotationByPinch)
允许/取消 pinch 旋转
Boolean isAllowRotationByPinch()
是否允许 pinch 时旋转
3