地图图层 |
地图显示可以通过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"文件所在的路径是相对于移动端设备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图层符合 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图层符合 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);