地图图层

发送反馈


地图显示可以通过mapView类来定义,支持向地图视图中添加一个或者多个图层,组合显示以控制地图的出图效果,当被焦点选中时,能捕获按键事件和触摸手势去完成地图的基本操作,如平移、缩放等。

添加图层

通过mapView的addLayer()方法可以向地图中添加图层,以下三种方式分别是向地图添加图层、添加图层到指定索引位置、添加一组(多个)图层,其中mapView.setBuiltInZoomControls(true)可用于启用内置的缩放控件:

MapView mapView = (MapView) this.findViewById(R.id.mapview);
LayerView layerView = new LayerView(this);
layerView.setURL("http://MyServerIP:8090/iserver/services/map-china400/rest/maps/China");
//添加图层
mapView.addLayer(layerView);
//启用内置的缩放控件
mapView.setBuiltInZoomControls(true);
//添加图层到指定索引位置
mapView.addLayer(LayerView layView, 5);

其中,关于索引的定义是:按照图层添加的顺序,从0开始递增,后添加的图层加载在已有图层的上面,如果图层添加时指定了索引号,则添加到指定位置。

MapView mapView = (MapView) this.findViewById(R.id.mapview);
LayerView layerView1 = new LayerView(this);
layerView1.setURL("http://MyServerIP:8090/iserver/services/map-china400/rest/maps/China");
LayerView layerView2 = new LayerView(this);
layerView2.setURL("http://MyServerIP:8090/iserver/services/map-jingjin/rest/maps/京津地区地图");
//添加图层
LayerView[] layerViews=new LayerView[2];
layerViews[0]=layerView1;
layerViews[1]=layerView2;
mapView.addLayers(layerViews);
//启用内置的缩放控件
mapView.setBuiltInZoomControls(true);

添加云图层

云图层创建后,不需要用户设置任何参数如URL等,addLayer()则显示SuperMap云服务提供的地图图层。云图层常作为底图使用。

MapView mapView = (MapView) this.findViewById(R.id.mapview);
CloudLayerView cloudlayer = new CloudLayerView(this);        
//添加云图层
 mapView.addLayer(cloudlayer);
//启用内置的缩放控件
mapView.setBuiltInZoomControls(true);

添加MBtiles离线图层

离线图层的地图浏览完全不依赖网络连接。构造离线图层时,“地图名.Mbtiles"文件所在的路径是相对于移动端设备sdcard的路径(也可以是绝对路径)。

 mapView = (MapView) this.findViewById(R.id.mapview);
 //构造离线图层,Mbtiles文件所在的路径相对于移动端设备sdcard的路径
 MBTilesLayerView mbtilesLayer = new MBTilesLayerView(this, "supermap/China.mbtiles");
 //添加离线图层
 mapView.addLayer(mbtilesLayer);
 //启用内置的缩放控件     
 mapView.setBuiltInZoomControls(true);

添加WMS图层

        WMS图层符合 OGC(Open Geospatial Consortium,开放地理信息联盟)制定的 WMS 实现规范。 SuperMap 目前支持以下 WMS1.1.1以及WMS1.3.0两个版本。添加WMS图层方法如下:

 mapView = (MapView) this.findViewById(R.id.mapview);
 //构造WMS图层,以构建wms1.1.1为例
 WMSLayerView wmsLayerView111 = new WMSLayerView(this, "http://MyServerIP:8090/iserver/services/maps/wms111/世界地图_Day", "1.1.1", "0.12");
 //WMSLayerView wmsLayerView130 = new WMSLayerView(this, "http://MyServerIP:8090/iserver/services/map-world/wms130/世界地图_Day", "1.3.0", "0.11");
 //添加wms1.1.1图层
mapView.addLayer(wmsLayerView111);
 //启用内置的缩放控件     
 mapView.setBuiltInZoomControls(true);

添加WMTS图层

          WMTS图层符合 OGC(Open Geospatial Consortium,开放地理信息联盟)制定的 WMTS 实现规范。 SuperMap 目前支持以下 WMTS1.0.0。添加WMTS图层方法如下:

 mapView = (MapView) this.findViewById(R.id.mapview);
 //构造WMTS图层,以构建wmts1.0.0为例
 WMTSLayerView wmtsLayerView= new WMTSLayerView(this, "http://MyServerIP:8090/iserver/services/map-world/wmts100", "世界地图_Day", "GlobalCRS84Scale_世界地图_Day");
 //添加wmts1.0.0图层
mapView.addLayer(wmtsLayerView);
 //启用内置的缩放控件     
 mapView.setBuiltInZoomControls(true);

删除图层

删除图层可以通过mapView的removeAllLayers()、removeLayer()来实现,以下三种方式分别是删除所有图层、删除指定图层、删除指定索引的图层:

//删除所有图层
mapView.removeAllLayers();
//添加删除指定索引的图层
mapView.removeLayer(1);
//添加删除指定图层
mapView.removeLayer(layerView1);