ArcGIS API for JavaScript 4.12 实现windows本地化部署
1.前言:
相信很多同学都在使用ESRI官方提供的ArcGIS API for JavaScript进行Web GIS应用的开发,因为它提供了很多强大且易用的接口,极大地方便了我们的开发工作。
ArcGIS API for JavaScript是ESRI随ArcGIS 9.3版本一同发布的,是ESRI基于Dojo框架和REST风格实现的一套编程接口,通过JS API可以对ArcGIS for Server进行访问,并将ArcGIS for Server的应用镶嵌如Web应用中。JS API为我们提供了地图展示 、图形绘制、符号渲染、查询检索、地理处理、网络分析、在线编辑、影像处理、地图输出等功能接口。程序开发讲究站在巨人的肩膀上继续前进,所以我们应该充分利用这些ESRI官方提供的API,试想如果离开了这些API我们开发GIS应用经会变得异常困难。
但是现实中我们调用JS API,往往速度比较慢,这是因为ESRI并没有在国内架设服务器。但是时间很宝贵啊,为了节省时间,我们就有必要实现JS API的本地化部署。
2.所需软件:
TomCat 8.5.41
ArcGIS API for JavaScript 4.12
3.安装

3.1解压Tomcat
将下载下来的TomCat 解压至纯英文目录,然后计算机===》属性===》高级系统设置===》环境变量===》新建,变量名: CATALINA_HOME 变量值: 解压TomCat的绝对位置,如下图:

3.2启动TomCat
进入TomCat 的解压目录的bin目录,找到startup.bat文件,双击即可运行TomCat,默认端口为8080,打开浏览器输入localhost:8080,看到如下页面即为安装Tomcat成功。因为我把端口修改为了80,所以只输入localhost即可,80可以省略。

3.3下载ArcGIS API for JavaScript
注意:下载之前,先去ArcGIS Online上注册账号,过程比较简单这里就不演示了。(SDK比较大,下载下来看看也可以,说不定以后也会用上呢)
3.3.1 配置init.js
下载好之后,就地解压,进入该目录 arcgis_js_v412_api\arcgis_js_api\library\4.12,找到init.js,使用编辑器打开,将里面的 [HOSTNAME_AND_PATH_TO_JSAPI],替换为 arcgis_js_api\library\4.12
同时把https的s去掉,一会儿解释。如下图:

3.3.2 配置dojo.js
进入该目录 arcgis_js_v412_api\arcgis_js_api\library\4.12\dojo,找到dojo.js,使用编辑器打开,将里面的 [HOSTNAME_AND_PATH_TO_JSAPI],替换为 arcgis_js_api\library\4.12
同时也把https的s去掉,如下图:

备注:之所以去掉https的s是因为,我们这是在本地搭建的服务,我们确认是安全的调用和浏览服务,但是浏览器不管那么多,它人为没有证书的浏览请求都是耍流氓。所以我们s去掉就可以解决这个问题。这个s就代表security,安全的意思。至于http和https的区别请戳链接细品。
3.4开始测试
在桌面新建index.html文件,用编辑器打开,输入如下内容:
<!DOCTYPE html>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no" />
<title>Test Map</title>
<link rel="stylesheet" href="http://localhost/arcgis_js_api/library/4.12/dijit/themes/claro/claro.css" />
<link rel="stylesheet" href="http://localhost/arcgis_js_api/library/4.12/esri/themes/light/main.css" />
<style>
html,
body,
#viewDiv {
margin: 0;
padding: 0;
width: 100%;
height: 100%;
}
</style>
<script src="http://localhost/arcgis_js_api/library/4.12/dojo/dojo.js"></script>
<script>
var myMap, view;
require([
"esri/Basemap",
"esri/layers/TileLayer",
"esri/Map",
"esri/views/MapView"
], function (Basemap, TileLayer, Map, MapView){
// --------------------------------------------------------------------
// If you do not have public Internet access then use the Basemap class
// and point this URL to your own locally accessible cached service.
//
// Otherwise you can just use one of the named hosted ArcGIS services.
// https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer
// --------------------------------------------------------------------
var layer = new TileLayer({
url: "https://services.arcgisonline.com/ArcGIS/rest/services/World_Street_Map/MapServer"
});
var customBasemap = new Basemap({
baseLayers: [layer],
title: "Custom Basemap",
id: "myBasemap"
});
myMap = new Map({
basemap: customBasemap
});
view = new MapView({
center: [-111.87, 40.57], // long, lat
container: "viewDiv",
map: myMap,
zoom: 6
});
});
</script>
</head>
<body class="claro">
<div id="viewDiv"></div>
</body>
</html>
保存之后,双击该文件后,不出意外的话,会在浏览器展示出一幅地图,如下图:

至此,ArcGIS API for JavaScript部署完毕。

浙公网安备 33010602011771号