1. 程式人生 > 實用技巧 >Arcgis API for js 本地部署

Arcgis API for js 本地部署

本篇文章介紹如何將ArcGIS API for JavaScript 4.10下載並部署到IIS

下載ArcgisAPI for JavaScript 4.10

首先開啟網址:https://developers.arcgis.com/javascript/

將這兩個檔案都解壓到桌面,至此下載工作就完成了

部署ArcgisAPI for JavaScript 4.10

第一步:開啟IIS服務

控制面板---程式---啟用或關閉Windows功能,然後按下圖進行操作

過了幾分鐘後,會提示IIS服務已經啟動,這時候C盤會出現一個名為inetpub的資料夾,這個資料夾很重要。

將解壓好的arcgis_js_v410_sdk資料夾(在桌面)複製貼上到inetpub資料夾下的wwwroot資料夾下,如下圖:

接下來,桌面上應該還有一個arcgis_js_v410_api的資料夾,按下圖操作,找到library資料夾

開啟兩個檔案一個是init.js,另一個是dojo.js,兩個檔案的位置如下圖所示。作者使用VS2017開啟這兩個檔案

第一步:Ctrl+F組合鍵查詢[HOSTNAME_AND_PATH_TO_JSAPI],並替換為 localhost/arcgis_js_v410_sdk/arcgis_js_api/library/4.10

第二步:將https:// 換成 http://

對上述兩個檔案執行相同的操作

第一次修改檔案的時候,後面的dojo距離前面有空格,所以除錯一直出錯,大家注意一下。引號裡面不應該出現空格。

原則上來說,如果沒有操作失誤,部署工作就也完成啦。接下來就要檢驗一下是否部署成功啦。

測試部署是否成功

在空白網址中輸入:http://localhost/arcgis_js_v410_sdk/arcgis_js_api/library/4.10/init.js

如果能讀取檔案則成功,如下圖

下面開啟一個地圖,使用部署在本機的檔案,看看能否正確開啟

上面紅色框括起來的是新的引用,引用在本地(localhost)部署的檔案。

下面紅色框括起來的是舊的引用,引用在arcgis官網上部署的檔案。

作者第一次操作的時候出現了一個問題:

對於原引用<script src="https://js.arcgis.com/4.10/"></script>,作者以為是一個空的資料夾因此轉換成新的引用就變成了<script src="http://localhost/arcgis_js_v410_sdk/arcgis_js_api/library/4.10/"></script>

少了後面的dojo/dojo.js。

實際上,在vs中,按住ctrl鍵再點選原引用,會出現如下圖所示的介面,因此引用的是dojo/dojo.js這個檔案。因此應該是<script src="http://localhost/arcgis_js_v410_sdk/arcgis_js_api/library/4.10/dojo/dojo.js"></script>

最後,如果地圖成功顯示,則部署成功~

最後地圖程式碼:

<!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_v410_sdk/arcgis_js_api/library/4.10/esri/css/main.css">
    <script src="http://localhost/arcgis_js_v410_sdk/arcgis_js_api/library/4.10/dojo/dojo.js"></script>

    
    <!--<link rel="stylesheet" href="https://js.arcgis.com/4.10/esri/css/main.css">
    <script src="https://js.arcgis.com/4.10/"></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>