在我的GIS之家群里,經常遇到 webgis 開發新手們提問 arcgis api for js 如何本地離線部署,而不是直接調用在線的,因為在線模式依賴互聯網以及網速環境因素,受到的限制影響比較大。所以,本篇專門來講解 arcgis api for js 離線部署的詳細步驟配置以及測試是否部署成功,以 IIS 部署為例,tomcat 部署配置也是同個道理,差別不大。
本篇以 arcgis api 4.x for js 版本系列為測試用例,其實 arcgis api 3.x for js 版本系列的離線配置方法也是類似的,之前寫過一篇,參照文章,這里不再一一敘述。
arcgis api 下載途徑
-
esri官網下載,下載需要注冊 arcgis 用戶才行,版本自己選擇,官網下載最新版本api的地址:
官網下載頁面 -
共享已經下載好的 arcgis 3.x 以及arcgis 4.x 系列api版本地址:
arcgis api3.18 for js:下載
arcgis api3.19 for js:下載
arcgis api3.20 for js:下載
arcgis api3.23 for js:下載
arcgis api3.24 for js:下載
arcgis api3.25 for js:下載
arcgis api3.26 for js:下載
arcgis api3.27 for js(密碼:qrwh):下載
arcgis api4.1 for js:下載
arcgis api4.2 for js:下載
arcgis api4.6 for js:下載
arcgis api4.7 for js:下載
arcgis api4.8 for js:下載
arcgis api4.9 for js:下載
arcgis api4.10 for js(密碼:6agz):下載
IIS部署配置方案
-
把下載的arcgis api 4.x 離線包解壓拷貝到 C:\inetpub\wwwroot 目錄下:
-
配置 init.js 文件,修改里面的路徑,我本機的目錄如下:
C:\inetpub\wwwroot\arcgis_js_api\library\4.10\init.js ;
init.js 文件里面,全局搜索 [HOSTNAME_AND_PATH_TO_JSAPI] ,然后替換成 api 在本地機器上的部署路徑,我的配置如下:http://localhost/arcgis_js_api/library/4.10/dojo -
同理,配置 dojo.js 文件
全局搜索 [HOSTNAME_AND_PATH_TO_JSAPI] ,然后替換成 api 在本地機器上的部署路徑,我的配置如下:http://localhost/arcgis_js_api/library/4.10/dojo
測試離線部署api是否成功
用html編寫一個簡單的加載在線地圖顯示例子,代碼如下:
<!DOCTYPE html> <html> <head> <meta charset="utf-8"> <meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no"> <title>Intro to MapView - Create a 2D map - 4.10</title> <style> html, body, #viewDiv { padding: 0; margin: 0; height: 100%; width: 100%; } </style> <link rel="stylesheet" href="http://localhost/arcgis_js_api/library/4.10/esri/css/main.css"> <script src="http://localhost/arcgis_js_api/library/4.10/init.js"></script> <script> require([ "esri/Map", "esri/views/MapView" ], function(Map, MapView) { var map = new Map({ basemap: "streets" }); var view = new MapView({ container: "viewDiv", map: map, zoom: 4, center: [15, 65] // longitude, latitude }); }); </script> </head> <body> <div id="viewDiv"></div> </body> </html>
在有互聯網情況下,地圖能夠加載出來,說明離線部署成功
竊喜之余,突然發現網頁f12模式下,控制台出現跨域錯誤:
arcgis api 3.x 版本離線部署沒有出現這種問題,所以,還要解決IIS跨域問題,具體步驟如下:
-
打開IIS界面,點擊HTTP響應標頭
-
在右側可以看到添加,然后添加如下標頭即可
Access-Control-Allow-Headers:Content-Type, api_key, Authorization
Access-Control-Allow-Origin:* -
刷新網頁,控制台沒報錯了,解決跨域問題