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。前面两个用来加载网络动态图层与网络图像图层。

下面是图层的关系表:

Android中背景叠加效果 android图层叠加_MapView