部署ArcGIS JS API 離線包(Tomcat與IIS)


ArcGIS Javascript API 在國內訪問一直非常緩慢,Ersi也沒有部署國內CDN的意思,但是它提供了離線安裝包。安裝過程其實挺簡單的,就是有些繁瑣, Tomcat的部署不太清晰。主要為了記錄一下,便於以后查閱。

    1.下載離線包

首先下載ArcGIS JS API 離線包需要注冊一個免費的帳號,注冊地址為:https://webaccounts.esri.com/cas/index.cfm 。然后進入ESRI官網下載頁面選擇下載,版本: v2.7v3.0v3.2 .如果訪問緩慢的話,可以從微盤下載:v2.7v3.0v3.2 .

      2.安裝離線包

  1.   解壓下載的壓縮包,將里面的 \arcgis_js_api\library 目錄的所有內容全部拷貝到你的web 服務器中。比如的以下路徑例子所示,
    •   Tomcat: \home\vent\tomcat7\webapps\arcgis_js_api\library
    •   IIS: C:\Inetpub\wwwroot\arcgis_js_api\library
  2.  將以下文件在文本編輯器(如Notepad++,Vim)中打開
    •   Tomcat: \home\vent\tomcat7\webapps\arcgis_js_api\library\2.7\jsapi\js\esri\esri.js
    •   IIS: C:\Inetpub\wwwroot\arcgis_js_api\library\2.7\jsapi\js\esri\esri.js
  3. 搜索esri.js文件中的 '[HOSTNAME_AND_PATH_TO_JSAPI]', 用以下URI代替之。
    •  Tomcat: <myserver>:8080/arcgis_js_api/library/2.7/jsapi/
    •   IIS: <myserver>/arcgis_js_api/library/2.7/jsapi/

    myserver是你的網站訪問URI,本地可以用localhost/127.0.0.1來代替.

  4.  將以下文件在文本編輯器(如Notepad++,Vim)中打開:
    •   Tomcat: \home\vent\tomcat7\webapps\arcgis_js_api\library\2.7\jsapi\dojo\dojo\dojo.xd.js
    •   IIS: C:\Inetpub\wwwroot\arcgis_js_api\library\2.7\jsapi\js\dojo\dojo\dojo.xd.js
  5.  搜索dojo.xd.js文件中的三個 '[HOSTNAME_AND_PATH_TO_JSAPI]' ,用以下URI代替之。
    • Tomcat: <myserver>:8080/arcgis_js_api/library/2.7/jsapi/
    •   IIS: <myserver>/arcgis_js_api/library/2.7/jsapi/
  6.  將以下文件在文本編輯器(如Notepad++,Vim)中打開:
    •   Tomcat: \home\vent\tomcat7\webapps\arcgis_js_api\library\2.7\jsapi\dojo\dojo\dojo.xd.js.uncompressed.js
    •   IIS: C:\Inetpub\wwwroot\arcgis_js_api\library\2.7\jsapi\js\dojo\dojo\dojo.xd.js.uncompressed.js
  7.  搜索dojo.xd.js文件中的三個 '[HOSTNAME_AND_PATH_TO_JSAPI]' ,用以下URI代替之。
    • Tomcat: <myserver>:8080/arcgis_js_api/library/2.7/jsapi/
    •   IIS: <myserver>/arcgis_js_api/library/2.7/jsapi/
  8. (可選) 如果你在項目中使用到壓縮版的ArcGIS JS API,需要在arcgis_js_api\library\2.7\jsapicompact重復4-7的步驟。
  9. 將這個文件夾部署到Web服務器上。由於ArcGIS JavaScript APIs將多個 JavaScript 文件通過單一的URL流式地提供給客戶端,所以它需要默認的處理器來模擬、控制JS文件流. ESRI提供了三種方式,在\library\2.7\jsapi\文件夾下,包括index.jsp, index.php,Default.ashx .配置如下,Tomcat配置過程:
    • 打開 \home\vent\tomcat7\webapps\arcgis_js_api\library\2.7\jsapi\init.js
    • 搜索init.js文件中的 '[HOSTNAME_AND_PATH_TO_JSAPI]', 用<myserver>:8080/arcgis_js_api/library/2.7/jsapi/代替之
    • 在頁面調用的時候使用方法:
      <script type="text/javascript" src="http://<myserver>:8080/arcgis_js_api/library/2.7/jsapi/init.js"></script>

    IIS配置過程:

    • 打開IIS 管理器.
    • 打開包含Default.ashx 文件的文件夾 (C:\Inetpub\wwwroot\arcgis_js_api\library\2.7\jsapi).
    • 右鍵點擊屬性,選擇文件Tab。確定啟用默認內容頁被勾選 。
    • 點擊添加到按鈕 .輸入 "Default.ashx,點擊確認並退出。

          3.測試

測試代碼如下:

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
  <head>
    <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
    <title>Simple Map</title>
    <link rel="stylesheet" type="text/css" href="http://<myserver>:8080/arcgis_js_api/library/2.7/jsapi/js/dojo/dijit/themes/tundra/tundra.css">
    <link rel="stylesheet" type="text/css" href="http://<myserver>:8080/arcgis_js_api/library/2.7/jsapi/js/esri/css/esri.css" />
    <script type="text/javascript" src="http://<myserver>:8080/arcgis_js_api/library/2.7/jsapi/init.js"></script>
    <script type="text/javascript">
      dojo.require("esri.map");
      function init() {
        var myMap = new esri.Map("mapDiv");
        //note that if you do not have public Internet access then you will need to point this url to your own locally accesible cached service.
        var myTiledMapServiceLayer = new esri.layers.ArcGISTiledMapServiceLayer("http://cache1.arcgisonline.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer");
        myMap.addLayer(myTiledMapServiceLayer);
      }
      dojo.addOnLoad(init);
    </script>
  </head>
  <body class="tundra">
    <div id="mapDiv" style="width:900px; height:600px; border:1px solid #000;"></div>
  </body>
</html>

 

使用Chrome Develop Tool 或者其它JS調試工具查看是否出錯。

知識共享許可協議
本作品由VentLam創作,采用知識共享署名-非商業性使用-相同方式共享 2.5 中國大陸許可協議進行許可。


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM