天天看點

基于ArcGIS API 4.12 for JS 的開發實踐(一)——部署

1、下載下傳ArcGIS API 4.12

首先你要有一個ESRI的賬号,沒有的話注冊一個好了,然後到位址https://developers.arcgis.com/downloads/apis-and-sdks這裡選擇下載下傳的API,我們這裡選擇的是ArcGIS API for JavaScript 4.12。下載下傳完成後得到一個壓縮包,解壓後裡面包含了一個名為“arcgis_js_api”的檔案夾,這個就是主要的代碼。

 2、部署環境IIS的準備

我的開發環境是Windows7,我自行下載下傳了IIS7.5并安裝,然後在控制台的“打開或關閉Windows功能”視窗裡,添加IIS服務。完成後就可以在計算機管理中看的安裝好的IIS。如下圖所示。

基于ArcGIS API 4.12 for JS 的開發實踐(一)——部署

安裝完成後,要測試一下IIS是否正常。如下圖所示。打開IIS預設網頁。

基于ArcGIS API 4.12 for JS 的開發實踐(一)——部署

當打開的網頁出現下面圖中所示的情況,即表示IIS安裝成功。

基于ArcGIS API 4.12 for JS 的開發實踐(一)——部署

注意,這裡記得要添加一些MIME類型,因為ArcGIS API 4.12 for JS 用到了一些特殊的檔案,必須把這些類型讓IIS能夠解析。并且,這幾個MIMI類型最好直接添加到根節點上去,這樣後面你建的網站會自動繼承這些MIMI類型。

 MIMI添加

擴充名 MIMI類型
.svg image/svg+xml
.woff application/x-font-woff
.woff2 application/x-font-woff
.wsv application/octet-stream
.ttf application/octet-stream
.wasm application/wasm

 再注意,添加完MIMIE類型,還要添加HTTP響應标頭,這個是涉及到後面跨域通路的問題,強烈建議這裡在根節點的HTTP響應标頭裡面添加以下内容:

HTTP響應标頭名稱 标頭值
Access-Control-Allow-Credentials true
Access-Control-Allow-Headers origin,x-requested-with,content-type
Access-Control-Allow-Methods POST,GET,OPTIONS
Access-Control-Allow-Origin *

到這裡,IIS這邊的任務就完成了。

3、ArcGIS API 4.12的安裝

把第一步總解壓後的“arcgis_js_api”這個檔案夾拷貝到“C:\inetpub\wwwroot”目錄下面(IIS的根目錄),記住是解壓檔案夾裡面的“arcgis_js_api”這個檔案夾,而不是解壓後的檔案夾。這個檔案夾的目錄結構如下:

基于ArcGIS API 4.12 for JS 的開發實踐(一)——部署

第二步,修改“C:\inetpub\wwwroot\arcgis_js_api\library\4.12”這個目錄下的“init.js”這個檔案,把裡面的[HOSTNAME_AND_PATH_TO_JSAPI],替換為你自己的IP或者用localhost也可以。如下圖:

基于ArcGIS API 4.12 for JS 的開發實踐(一)——部署

同理,繼續修改“C:\inetpub\wwwroot\arcgis_js_api\library\4.12\dojo”這個目錄下的“dojo.js”這個檔案,把裡面的[HOSTNAME_AND_PATH_TO_JSAPI],替換為你自己的IP或者用localhost也可以。如下圖:

基于ArcGIS API 4.12 for JS 的開發實踐(一)——部署

再次注意:原“dojo.js”、“init.js”這兩個JS檔案裡的“baseUrl”用的是https方式的安全連結,ESRI官方文檔上也是建議你用這種連結方式,但是這個方式會帶來認證證書的問題,以及跨域通路的問題,雖然也是可以。我第一次部署就是用的這種連結方式,相對應,你在IIS上也必須部署為https這種方式的連接配接。成功之後,如果用chrome浏覽器,會在位址欄提示你證書問題,很煩,如果省事,就直接用http這種連結方式吧。

另外,有同學認為這種手動修改源檔案的方式太low太容易出錯了吧,有沒有一鍵快速替換的辦法?你别說,ESRI官網還真有,就是利用Visual Studio Code 和Node.js這兩個工具,可以實作快捷部署,我們下次專門講一下這個吧,,詳情請點選:基于ArcGIS API 4.12 for JS 的開發實踐(二)——Visual Studio Code和NodeJs實作快捷部署。

4、驗證及示範

ArcGIS API 4.12的安裝經過第三步,就基本上成功了,為了確定示範成功,我們最後驗證一下我們安裝是否成功,方法很簡單就是在位址欄輸入“http://localhost/arcgis_js_api/library/4.12/dojo/dojo.js”來看看浏覽器是不是能成功加載js。成功則如下圖所示。

基于ArcGIS API 4.12 for JS 的開發實踐(一)——部署

最後用一個小程式來示範下效果,其實ESRI官方已經有這個例子了,我就直接抄過來了,首先建立一個HTML檔案,并拷入以下代碼:

<html>
<head>
  <meta charset="utf-8">
  <meta name="viewport" content="initial-scale=1, maximum-scale=1, user-scalable=no">
  <title>ArcGIS API for JavaScript Hello World App</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.12/esri/css/main.css" target="_blank" rel="external nofollow" >
  <script src="http://localhost/arcgis_js_api/library/4.12/"></script>

  <script>
    require([
      "esri/Map",
      "esri/views/MapView"
    ], function(Map, MapView) {

      var map = new Map({
        basemap: "topo-vector"
      });

      var view = new MapView({
        container: "viewDiv",
        map: map,
        center: [-118.71511,34.09042],
        zoom: 11
      });

    });
  </script>
</head>
<body>
  <div id="viewDiv"></div>
</body>
</html>
           

注意,上圖中的兩個URL連結,就是要替換為你自己的連結,一個是css樣式,另外一個是dojo.js,這兒兩個都必須加載。不出什麼問題,在浏覽器中代碼将成功執行:

基于ArcGIS API 4.12 for JS 的開發實踐(一)——部署

這裡加載的地圖是ESRI自帶的,後面我們将會講到怎麼加載自己或者百度、高德地圖。

繼續閱讀