加载---加载动态图层+注册文件夹
基础:加载动态图层
方法:
- 添加一个button(添加动态图层),给button绑定on模块的点击事件
on(dom.byId("btn"),"click",function(e){})
定义数据源,设置命名空间,设置命名空间下面的shp
var dataSource = new TableDataSource(); dataSource.workspaceId = "demo"; dataSource.dataSourceName = "demoShp.shp";
- 定义图层数据源,对其赋值
var layerSource = new LayerDataSource();
layerSource.dataSource = dataSource;
- 定义要素图层(动态图层)
var layer2 = new FeatureLayer
("http://localhost:6080/arcgis/rest/services/demo/Practice/MapServer/dynamicLayer", {
mode: FeatureLayer.MODE_ONDEMAND,
outFields: ["*"],
source: layerSource
});
定义线符号,渲染器
var lineSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_DASH, new dojo.Color([255, 0, 0]), 3); var renderer = new esri.renderer.SimpleRenderer(lineSymbol);
给要素图层设置渲染器
layer2.setRenderer(renderer); layer2.refresh();
把要素图层添加到map上
map.addLayer(layer2);
贴代码
<!DOCTYPE html>
<html>
<head lang="en">
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="https://js.arcgis.com/3.28/esri/css/esri.css"/>
<link rel="stylesheet" href="https://js.arcgis.com/3.28/dijit/themes/tundra/tundra.css"/>
<script type="text/Javascript" src="https://js.arcgis.com/3.28/"></script>
<script type="text/javascript">
require(["esri/map",
"dojo/dom",
"dojo/on",
"esri/layers/ArcGISDynamicMapServiceLayer",
"esri/layers/FeatureLayer",
"esri/layers/TableDataSource",
"esri/layers/LayerDataSource",
"esri/renderers/SimpleRenderer",
"esri/symbols/SimpleLineSymbol",
"dojo/domReady!"], function (
Map,dom,on, ArcGISDynamicMapServiceLayer, FeatureLayer, TableDataSource, LayerDataSource, SimpleRenderer,SimpleLineSymbol) {
var map = new Map("mapDiv");
var layer1 = new ArcGISDynamicMapServiceLayer("http://localhost:6080/arcgis/rest/services/demo/Practice/MapServer");
map.addLayer(layer1);
on(dom.byId("btn"),"click",function(e){
// 定义数据源,设置命名空间,设置命名空间下面的shp
var dataSource = new TableDataSource();
dataSource.workspaceId = "demo";
dataSource.dataSourceName = "demoShp.shp";
// 定义图层数据源,对其赋值
var layerSource = new LayerDataSource();
layerSource.dataSource = dataSource;
//定义一个要素图层:动态图层
var layer2 = new FeatureLayer("http://localhost:6080/arcgis/rest/services/demo/Practice/MapServer/dynamicLayer", {
mode: FeatureLayer.MODE_ONDEMAND,
outFields: ["*"],
source: layerSource
});
//定义线符号,渲染器
var lineSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_DASH, new dojo.Color([255, 0, 0]), 3);
var renderer = new esri.renderer.SimpleRenderer(lineSymbol);
//给要素图层设置渲染器
layer2.setRenderer(renderer);
layer2.refresh();
//把要素图层添加到map上
map.addLayer(layer2);
})
});
</script>
</head>
<body>
<div id="mapDiv" style="height:600px;"></div>
<button id="btn">添加动态图层</button>
</body>
</html>
原文作者: 冯亚杰(DanBoard·Feng)
原文链接: http://danbo3110.github.io/2019/10/23/加载---加载动态图层+注册文件夹/
版权声明: 转载请注明出处(必须保留作者署名及链接)