美文网首页
AGS JS开发-动态图层全面解析二

AGS JS开发-动态图层全面解析二

作者: 辛立 | 来源:发表于2017-03-12 14:41 被阅读0次

    以FeatureLayer加载动态图层


    1.环境说明

    ArcGIS 10.4.1
    JS API 3.15

    2.实现思路

    动态图层加载前需要先定义动态图层,根据理论篇的介绍,即需要先定义图层源,再为图层源指定数据源。后续文章中动态图层的定义都是按这个套路。
    FeatureLayer中包含了一个source属性,用于设置数据源。将定义好的动态图层作为FeatureLayer的source源即完成了加载。

    需要注意的是FeatureLayer的url指向的是地图服务的dynamicLayer地址。

    3.以FeatureLayer方式加载动态图层

    //以featurelayer加载动态图层,加载完成可对featurelayer执行query操作。
    //备注:query中会增加layer参数,该参数值与restURL/dynamicLayer中传入的layer值一样。
    on(dom.byId("showAsFtLayerBtn"),"click",showAsFtLayerBtnHandler);
    function showAsFtLayerBtnHandler(){
        var workspaceId = "FGDBWorkspace1224";
        var layerName = dom.byId("dynamicLayers").value;
        console.log("当前增加的图层名:"+layerName);
    
        //定义一种数据源
        //1.TableDataSource
        var tableDS = new TableDataSource();
        tableDS.workspaceId = workspaceId;
        tableDS.dataSourceName = layerName;
        //2.定义动态图层数据
        var layerSource = new LayerDataSource();
        layerSource.dataSource = tableDS;
        //3.以featurelayer来加载,支持在此基础上的query操作。注意url地址
        var featureLayer = new FeatureLayer("http://portal140.xinli.local/server/rest/services/worldcities/MapServer/dynamicLayer", {
            id:layerName,
            mode: FeatureLayer.MODE_ONDEMAND,
            outFields: ["*"],
            infoTemplate: new InfoTemplate(tableDS.dataSourceName,"${*}"),
            source: layerSource
        });
        map.addLayer(featureLayer);
    
        //设置图层渲染
        featureLayer.on("load",function(){
            var renderer = new SimpleRenderer(createSymbol(featureLayer.geometryType));
            featureLayer.setRenderer(renderer);
        })
    }
    

    4.源码
    xinligis github

    相关文章

      网友评论

          本文标题:AGS JS开发-动态图层全面解析二

          本文链接:https://www.haomeiwen.com/subject/nplrgttx.html