加载---加载动态图层+注册文件夹

基础:加载动态图层
方法:
  1. 添加一个button(添加动态图层),给button绑定on模块的点击事件

    1
    on(dom.byId("btn"),"click",function(e){})
  1. 定义数据源,设置命名空间,设置命名空间下面的shp

    1
    2
    3
    var dataSource = new TableDataSource();
    dataSource.workspaceId = "demo";
    dataSource.dataSourceName = "demoShp.shp";
  2. 定义图层数据源,对其赋值

    1
    2
    var layerSource = new LayerDataSource();
    layerSource.dataSource = dataSource;
  3. 定义要素图层(动态图层)

    1
    2
    3
    4
    5
    6
    var layer2 = new FeatureLayer
    ("http://localhost:6080/arcgis/rest/services/demo/Practice/MapServer/dynamicLayer", {
    mode: FeatureLayer.MODE_ONDEMAND,
    outFields: ["*"],
    source: layerSource
    });
  4. 定义线符号,渲染器

    1
    2
    3
    var lineSymbol = new SimpleLineSymbol(SimpleLineSymbol.STYLE_DASH, new dojo.Color([255, 0, 0]), 3);
    var renderer = new esri.renderer.SimpleRenderer(lineSymbol);

  5. 给要素图层设置渲染器

    1
    2
    layer2.setRenderer(renderer);
    layer2.refresh();
  6. 把要素图层添加到map上

    1
    map.addLayer(layer2);
贴代码
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
<!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>