ArcGIS API for JavaScript开发-动态图层全面解析二

0
分享 2017-03-14
以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/s ... ot%3B, {
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
文章来源:http://www.jianshu.com/p/6c6c19362c05

ArcGIS API for JavaScript开发-动态图层全面解析一:http://zhihu.esrichina.com.cn/article/2831
ArcGIS API for JavaScript开发-动态图层全面解析二: http://zhihu.esrichina.com.cn/article/2832
ArcGIS API for JavaScript开发-动态图层全面解析三:http://zhihu.esrichina.com.cn/article/2833

0 个评论

要回复文章请先登录注册