MapView介绍
一个MapView的是一个组件,可以让你在Android应用程序绘制地图。该类继承自Android ViewGroup类,并充当一个或多个Layer对象的容器。通过在布局XML中使用MapOptions或以编程方式创建MapView时,MapView的属性可以很容易地初始化。
<com.esri.android.map.MapView
android:id="@+id/mapview"
android:layout_width="match_parent"
android:layout_height="match_parent">
</com.esri.android.map.MapView>
MapView的常用方法有以下:
一. 添加图层
可以添加网络图层与本地图层,tpk文件,shp文件,json数据等,图层的添加是有顺序的,一层一层叠加,后面的图层会覆盖前面的图层:
- public int addLayer (Layer layer);
- public int addLayer (Layer layer, int index):
- public void addLayers (Layer[] layerArray)
二.移除图层
- removeAll():移除所有图层
- removeLayer(Layer layer):移除指定图层
- removeLayer(int index):根据顺序移除图层
三.获取图层
- public Layer getLayer (int index):根据顺序获取图层
- public Layer getLayerByID (long layerID):根据图层id获取图层
- public Layer getLayerByURL (String url):根据图层url获取图层
- public Layer[] getLayers ()
四:地图放大和缩小
- public void zoomin ():放大
- public void zooout ():缩小
五.屏幕坐标和地图坐标的转化
- public Point toMapPoint (float screenx, float screeny):屏幕坐标转化为地图坐标
- public Point toScreenPoint (Point src):地图坐标转化为屏幕坐标
六.其他
public void setExtent (Geometry geometry):设置MapView的所显示的范围。
public Polygon getExtent ():获取地图最小外包矩形
public void centerAt (Point centerPt, boolean animated):将地图居中到指定的点
public void centerAt (double lat, double lon, boolean animated):将地图居中到指定的点
public void centerAndZoom (double lat, double lon, float levelOrFactor):将地图居中到指定的点
public Point getCenter ():获取地图中心点
public Callout getCallout ():返回Callout对象,用于显示气泡弹出
public SpatialReference getSpatialReference ():获取地图的坐标系,比如84坐标或者是墨卡托等。
public LocationDisplayManager getLocationDisplayManager ():返回LocationDisplayManager,用于地图定位的显示。
七.点击事件
- public void setOnSingleTapListener (OnSingleTapListener onSingleTapListener):MapView的单击事件,返回的是float screenx, float screeny,屏幕的x与y值
- public void setOnLongPressListener (OnLongPressListener onLongPressListener):地图的长按事件,也是返回屏幕的x与y值。
- public void setOnStatusChangedListener (OnStatusChangedListener onStatusChangedListener):状态改变事件
- public void setOnPinchListener (OnPinchListener onPinchListener):设置地图平移事件监听
- public void setOnZoomListener (OnZoomListener onZoomListener):设置缩放监听
MapView的方法海有很多,这里就不一一列举,大家可以去查看MapView的Api
MapView的API
图层介绍
Arcgis中的图层有许多,主要的图层有DynamicLayer, FeatureLayer, GraphicsLayer, TiledLayer。
下面的主要来介绍一下Arcgis的主要图层。
1.GraphicLayer,图形图层,只有一个子类ArcGISFeatureLayer。用户通过这个图层可以在MapView中自形绘制要素,通过样式与色彩绘制点、线、面。
2.TiledLayer,切片图层,子类有ArcGISLocalTiledLayer, TiledServiceLayer。ArcGISLocalTiledLayer可以加载本地的tpk文件与切片图层,通过其子类ArcGISTiledMapServiceLayer加载网络的切片图层。
3.FeatureLayer,要素图层,没有子类,可加载本地shp文件。通过要素的特性,快速查询具体的要素信息。加载快速。
4.DynamicLayer,动态图层。主要有子类ArcGISDynamicMapServiceLayer, ArcGISImageServiceLayer,
WMSLayer。前面两个用来加载网络动态图层与网络图像图层。
下面是图层的关系表: