难醉 2018-12-06 08:04 采纳率: 50%
浏览 1440
已采纳

arcgisruntime for android 调用wms服务,只显示底图,不显示wms服务图层?

我用的编译工具是Android studio,加载的是廊坊四维墨卡托矢量的服务,底图加载的四维的全国地图,底图可以正常显示,戴氏,廊坊的wms服务无法显示。具体代码如下:

public class MainActivity extends AppCompatActivity {

    private MapView mMapView;

    private String wms_layer_url = "http://gis.internet.enn.cn/arcgis/services/LangFang0011_Map_MCT_D/MapServer/WMSServer?request=GetCapabilities&service=WMS";
    //private String wmts_url  = "http://sampleserver6.arcgisonline.com/arcgis/rest/services/WorldTimeZones/MapServer/WMTS";amp;?request=GetCapabilities&service=WMS

    @Override
    protected void onCreate(Bundle savedInstanceState) {
        super.onCreate(savedInstanceState);
        setContentView(R.layout.activity_main);

        mMapView = (MapView) findViewById(R.id.mapview);

        //瓦片
        String strMapUrl="http://gis.enn.cn:8080/OneMapServer/rest/services/Map_CHINA_T/MapServer";
        ArcGISTiledLayer layerBaseMap = new ArcGISTiledLayer(strMapUrl);

        //设置切片图层作为底图
        Basemap basemap = new Basemap(layerBaseMap);

        Viewpoint vp = new Viewpoint(39.524,116.719,3);
        ArcGISMap map = new ArcGISMap(basemap);
        map.setInitialViewpoint(vp);
        mMapView.setMap(map);

        // 保存一个用于显示的唯一标识WMS层名称的列表2.0,18.0,3
        List<String> wmsLayerNames = new ArrayList<>();
        wmsLayerNames.add("0");

        // create a new WMS layer displaying the specified layers from the service
        WmsLayer wmsLayer = new WmsLayer(wms_layer_url, wmsLayerNames);

        // add the layer to the map
        map.getOperationalLayers().add(wmsLayer);

        wmsLayer.addDoneLoadingListener(new Runnable() {

            @Override
            public void run() {
                if (wmsLayer.getLoadStatus() == LoadStatus.LOADED) {
                    // work with WMS layer here
                }
            }
        });

    }

    @Override
    protected void onPause() {
        super.onPause();
        mMapView.pause();
    }

    @Override
    protected void onResume() {
        super.onResume();
        mMapView.resume();
    }

    @Override
    protected void onDestroy() {
        super.onDestroy();
        mMapView.dispose();
    }

}

显示如下:
图片说明
我想要在红框位置显示我调用的wms服务,求助大神指点

  • 写回答

2条回答 默认 最新

  • devmiao 2018-12-06 12:54
    关注
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论
查看更多回答(1条)

报告相同问题?

悬赏问题

  • ¥15 PADS Logic 原理图
  • ¥15 PADS Logic 图标
  • ¥15 电脑和power bi环境都是英文如何将日期层次结构转换成英文
  • ¥20 气象站点数据求取中~
  • ¥15 如何获取APP内弹出的网址链接
  • ¥15 wifi 图标不见了 不知道怎么办 上不了网 变成小地球了
  • ¥50 STM32单片机传感器读取错误
  • ¥50 power BI 从Mysql服务器导入数据,但连接进去后显示表无数据
  • ¥15 (关键词-阻抗匹配,HFSS,RFID标签天线)
  • ¥15 机器人轨迹规划相关问题