感觉3和4还是有较大改变的。从esri官方例子上看来,4的功能更加丰富,在大数据的展示和操作上体验比3要好。 4.12为例
1. 不同
-
API调用
//API 3.x : <link rel="stylesheet" href="https://js.arcgis.com/3.28/esri/css/esri.css"/> <script src="https://js.arcgis.com/3.28/"> //API 4.x : <link rel="stylesheet" href="https://js.arcgis.com/4.12/esri/css/main.css"> <script src="https://js.arcgis.com/4.12/">
-
动态图层的引用模块
//API 3.x : "esri/map", “esri/layers/ArcGISDynamicMapServiceLayer”, //API 4.x : "esri/Map", “esri/views/MapView”
“map"改为了"Map”
显而易见从layers目录下到,到了views下,说明,地图需要放置在views中,既然多了一层,那这个views层必然是为我们封装了很多的方法和接口。 -
创建Map对象不在需要绑定id
//API 3.x : var map = new Map("mapDiv"); //API 4.x : var map = new Map();
-
图层的创建
var layer = new MapImageLayer({ url:"http://192.168.3.1:6080/arcgis/rest/services/gaofen/xianghe/MapServer", sublayers: [{id: 0,visible:true}] });
一般为两个参数,url 和 sublayers
- url 为 REST URL
- sublayers 设置图层可见性 比3更加方便
-
创建MapView,需要选择容器中的 map 和绑定的 DIV 的 id
new MapView({ map: map, container: "viewDiv" });
2. api 3.x 代码
3. api 4.x 代码
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<link rel="stylesheet" href="https://js.arcgis.com/4.12/esri/css/main.css">
<script src="https://js.arcgis.com/4.12/"></script>
<script type="text/javascript">
require(["esri/Map",
"esri/layers/MapImageLayer",
"esri/views/MapView",
"dojo/domReady!"],
function (Map, MapImageLayer, MapView) {
var map = new Map();
var layer = new MapImageLayer({
url:"http://192.168.3.1:6080/arcgis/rest/services/gaofen/xianghe/MapServer",
});
map.add(layer);
new MapView({
map: map,
container: "viewDiv"
});
});
</script>
</head>
<body>
<div id="viewDiv" style="height:800px;"></div>
</body>
</html>