ArcGIS for Android 10.2.9(11):加载网络图层

本文介绍了如何使用ArcGIS API加载不同类型的图层,包括网络切片图层、动态服务图层及其子图层,并提供了具体的实现代码示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1.ArcGISTiledMapServiceLayer:网络切片图层


    /**
     * 添加切片图层
     */
    private void addTileServiceLayer() {
        String netLayerUrl = "http://services.arcgisonline.com/arcgis/rest/services/World_Street_Map/MapServer";
        ArcGISTiledMapServiceLayer arcGISTiledMapServiceLayer = new ArcGISTiledMapServiceLayer(netLayerUrl);
        mMapView.addLayer(arcGISTiledMapServiceLayer);

        arcGISTiledMapServiceLayer.setOnStatusChangedListener(new OnStatusChangedListener() {
            @Override
            public void onStatusChanged(Object o, STATUS status) {
                if (status == STATUS.INITIALIZED) {
                    Log.e("xyh", "加载成功");
                } else if (status == STATUS.INITIALIZATION_FAILED || status == STATUS.LAYER_LOADING_FAILED) {
                    Log.i("xyh", "加载失败");
                }
            }
        });
    }

2.ArcGISDynamicMapServiceLayer:动态服务图层,里面包含子图层

public ArcGISDynamicMapServiceLayer (String url):全部可见
public ArcGISDynamicMapServiceLayer (String url,int [] visiblelayers):
    int [] visiblelayers:可见图层的id,全部可见,为null
 /**
     * 动态服务图层,里面包含子图层
     * public ArcGISDynamicMapServiceLayer (String url)
     * <p>
     * public ArcGISDynamicMapServiceLayer (String url,int [] visiblelayers)
     * int [] visiblelayers:可见图层的id,全部可见,为null
     */
    private void addDynamicServiceLayer() {
        String netDynamicLayerUrl = "http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Specialty/ESRI_StateCityHighway_USA/MapServer";
        ArcGISDynamicMapServiceLayer dynamicMapServiceLayer = new ArcGISDynamicMapServiceLayer(netDynamicLayerUrl);
        // ArcGISDynamicMapServiceLayer dynamicMapServiceLayer = new ArcGISDynamicMapServiceLayer(netDynamicLayerUrl, new int[]{0});
        mMapView.addLayer(dynamicMapServiceLayer);

        dynamicMapServiceLayer.setOnStatusChangedListener(new OnStatusChangedListener() {
            @Override
            public void onStatusChanged(Object o, STATUS status) {
                if (status == STATUS.INITIALIZED) {
                    Log.e("xyh", "加载成功");
                } else if (status == STATUS.INITIALIZATION_FAILED || status == STATUS.LAYER_LOADING_FAILED) {
                    Log.i("xyh", "加载失败");
                }
            }
        });
    }

3.ArcGISFeatureLayer:加载子图层

  /**
     * 加载服务的子图层
     */
    private void addChildLayer() {
        ArcGISFeatureLayer arcGISFeatureLayer = new ArcGISFeatureLayer(netDynamicLayerUrl + "/0",
                ArcGISFeatureLayer.MODE.ONDEMAND);
        mMapView.addLayer(arcGISFeatureLayer);
        //        arcGISFeatureLayer.setRenderer(new SimpleRenderer(
        //                new SimpleLineSymbol(Color.argb(250, 52, 17, 255), 2)));
        arcGISFeatureLayer.setOnStatusChangedListener(new OnStatusChangedListener() {
            @Override
            public void onStatusChanged(Object o, STATUS status) {
                if (status == STATUS.INITIALIZED) {
                    Log.e("xyh", "加载成功");

                } else if (status == STATUS.INITIALIZATION_FAILED || status == STATUS.LAYER_LOADING_FAILED) {
                    Log.e("xyh", "加载失败");
                }
            }
        });
    }
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值