Theme NexT works best with JavaScript enabled

ShunNien's Blog

不積跬步,無以致千里;不積小流,無以成江海。

0%

ArcGIS JavaScript API 安裝在 IIS

ArcGIS JavaScript API 安裝在 IIS

ArcGIS JavaScript API 提供的是類似 CDN 的服務,但是假如客戶是內部系統並不對外的時候,就無法使用了,由於該 API 包含許多功能模組,官方提供了此說明步驟來設定,不只 js api , SDK 也是類似的設定。

安裝設定

步驟 1

下載安裝程式, ESRI 的下載頁面僅提供會員使用,所以先註冊或是使用 google 帳號快速註冊(免費),登入後在此連結即可下載。
此次安裝使用 3.25 版本,API 會下載 arcgis_js_v325_api.zipDocumentation 則是 arcgis_js_v325_sdk.zip ,假如只使用 JS 部分,可以只安裝 API 就好

download page

步驟 2

將下載檔案解壓縮
unzip file

步驟 3

在 IIS 根目錄中建立一個虛擬目錄 arcgis_js_api ,選擇剛剛解壓縮後的檔案路徑,注意是要選擇 rcgis_js_v325_api\arcgis_js_api 這個資料夾

virtual directory arcgis_js_api

步驟 4

上述都是 IIS 部分的設定,接下來則是修改 javascript 內容;按照以下路徑(前一步驟設定的實體路徑)開啟 init.js

1
arcgis_js_api\library\3.25\3.25\init.js

找尋 [HOSTNAME_AND_PATH_TO_JSAPI] 此關鍵字,替換成各自設定的網域與資料夾路徑,如下

1
<myhost.example.com>/arcgis_js_api/library/<myVersion>/<myVersion>/

以我此次 3.25 的設定則是

1
http://127.0.0.1/arcgis_js_api/library/3.25/3.25/

init.js setting

步驟 5

開啟 IIS 路徑下的 dojo.js ,就是設定的實體路徑

dojo file

1
Default Web Site\arcgis_js_api\library\3.25\3.25\dojo\dojo.js

一樣找尋 [HOSTNAME_AND_PATH_TO_JSAPI] 關鍵字,用以下規則替換,同樣注意一下 protocol (http 與 https) 的差異

1
<myhost.example.com>/arcgis_js_api/library/<myVersion>/<myVersion>/

測試

其實安裝檔案裏面都有說明教學檔案,裡面也有附上此測試頁面,將 linkscript 替換成設定的路徑即可

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
<!DOCTYPE HTML>
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>Test Map</title>
<link rel="stylesheet" href="http://127.0.0.1/arcgis_js_api/library/3.25/3.25/esri/css/esri.css" />
<script src="http://127.0.0.1/arcgis_js_api/library/3.25/3.25/init.js"></script>
<style>
html,
body,
#map {
height: 100%;
width: 100%;
margin: 0;
padding: 0;
}
</style>
<script>
require([
"esri/map",
"esri/layers/ArcGISTiledMapServiceLayer",
"dojo/domReady!"
],function(Map, ArcGISTiledMapServiceLayer) {
var map = new Map("map");
//If you do not have Internet access then you will need to point this url to your own locally accessible tiled service.
var tiled = new ArcGISTiledMapServiceLayer("https://services.arcgisonline.com/arcgis/rest/services/Ocean/World_Ocean_Base/MapServer");
map.addLayer(tiled);
});
</script>
</head>
<body>
<div id="map"></div>
</body>
</html>

test page

參考資料

歡迎關注我的其它發布渠道