AGS JS開發(fā)-動態(tài)圖層全面解析二

以FeatureLayer加載動態(tài)圖層


1.環(huán)境說明

ArcGIS 10.4.1
JS API 3.15

2.實現(xiàn)思路

動態(tài)圖層加載前需要先定義動態(tài)圖層,根據(jù)理論篇的介紹,即需要先定義圖層源,再為圖層源指定數(shù)據(jù)源。后續(xù)文章中動態(tài)圖層的定義都是按這個套路。
FeatureLayer中包含了一個source屬性,用于設(shè)置數(shù)據(jù)源。將定義好的動態(tài)圖層作為FeatureLayer的source源即完成了加載。

需要注意的是FeatureLayer的url指向的是地圖服務(wù)的dynamicLayer地址。

3.以FeatureLayer方式加載動態(tài)圖層

//以featurelayer加載動態(tài)圖層,加載完成可對featurelayer執(zhí)行query操作。
//備注:query中會增加layer參數(shù),該參數(shù)值與restURL/dynamicLayer中傳入的layer值一樣。
on(dom.byId("showAsFtLayerBtn"),"click",showAsFtLayerBtnHandler);
function showAsFtLayerBtnHandler(){
    var workspaceId = "FGDBWorkspace1224";
    var layerName = dom.byId("dynamicLayers").value;
    console.log("當(dāng)前增加的圖層名:"+layerName);

    //定義一種數(shù)據(jù)源
    //1.TableDataSource
    var tableDS = new TableDataSource();
    tableDS.workspaceId = workspaceId;
    tableDS.dataSourceName = layerName;
    //2.定義動態(tài)圖層數(shù)據(jù)
    var layerSource = new LayerDataSource();
    layerSource.dataSource = tableDS;
    //3.以featurelayer來加載,支持在此基礎(chǔ)上的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);

    //設(shè)置圖層渲染
    featureLayer.on("load",function(){
        var renderer = new SimpleRenderer(createSymbol(featureLayer.geometryType));
        featureLayer.setRenderer(renderer);
    })
}

4.源碼
xinligis github

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點(diǎn),簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

友情鏈接更多精彩內(nèi)容