ArcGIS api for javascript 離線部署


一、說明:

1、本篇文章以及之后的相關的文章所使用的ArcGIS API for javascript 的版本是3.3。初學者為了學習簡單,可以引用在線的 Javascript。但是如果只能連接內網,而假如無法連接互聯網或者網速較慢的情況下,使用本地部署的 Javascript 是一個更佳的選擇,我們在這里要部署到 iis上,電腦怎么安裝IIS在這里不再贅述,不會安裝的自己去問度娘。

2、部署步驟:

(1)、下載ArcGIS API for javascript引用文件

自己可以到官網下載,也可以在下面的百度網盤下載

鏈接:https://pan.baidu.com/s/1HK2VER8xXmGZGirCC6x25Q
提取碼:jl76
(2)、部署到IIS

將下載的文件解壓

用 記 事 本 打 開 : 解 壓 目 錄 \library\3.3\jsapi\init.js 文 件 , 將 文 本 中“[HOSTNAME_AND_PATH_TO_JSAPI]”,用“<myserver>/arcgis_js_api/library/3.3/jsapi/”替換,其中myserver 可以是機器名、IP 等,在這里我用的是 localhost,即將“[HOSTNAME_AND_PATH_TO_JSAPI]”替換為”localhost/arcgis_js_api/library/3.3/jsapi/ “
用 記 事 本 打 開 :解 壓 目 錄 \library\3.3\jsapi\ js\dojo\dojo\dojo.js 文 件 , 將“[HOSTNAME_AND_PATH_TO_JSAPI]”替換為“localhost/arcgis_js_api/library/3.3/jsapi/”。
整個替換過程可以用記事本的查找替換功能,如下圖:

(3)、將修改后的文件連同解壓目錄內的所有文件拷貝到 Web 服務器根目錄,以 IIS 為例,拷貝為wwwroot 目錄下的 arcgis_js_api,最終的目錄結構如下圖:

 說明:wwwroot 即為Web 服務器根目錄,位於c盤中,我的wwwroot目錄位於c盤中文件夾下

直接把解壓目錄中arcgis_js_api直接拷貝到wwwroot文件夾中即可

 

(4)、iis文檔結構

(4)、示例

打開vs2012  新建項目 c#  asp.net空web應用程序,並且添加HTML頁面first.html

first.html頁面代碼如下:

<!DOCTYPE html>
<html>
<head>
 <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
 <title>第一個地圖應用</title>
<link rel="stylesheet" type="text/css" href="http://localhost/arcgis_js_api/library/3.3/jsapi/js/dojo/dijit/themes/tundra/tundra.css"/>
<link rel="stylesheet" type="text/css" href="http://localhost/arcgis_js_api/library/3.3/jsapi/js/esri/css/esri.css" />
<script type="text/Javascript" src="http://localhost/arcgis_js_api/library/3.3/jsapi/init.js"></script>
  <style type="text/css"> .MapClass { width:900px; height:600px; border:1px solid #000; 
         } 
     </style> 
    <script type="text/Javascript"> dojo.require("esri.map"); dojo.addOnLoad(function () { var MyMap = new esri.Map("MyMapDiv"); var MyTiledMapServiceLayer = new esri.layers.ArcGISTiledMapServiceLayer ("http://localhost/arcgis/rest/services/DZDT2012/MapServer"); MyMap.addLayer(MyTiledMapServiceLayer) } ) </script> 

</head> 
      <body class="tundra"> 
              <div id="MyMapDiv" class="MapClass"></div>  
     
      </body> 

</html> 

運行 visual studio效果如下:

 (5)、代碼解釋

<script type="text/Javascript"> dojo.require("esri.map"); dojo.addOnLoad(function () { var MyMap = new esri.Map("MyMapDiv"); var MyTiledMapServiceLayer = new esri.layers.ArcGISTiledMapServiceLayer ("http://localhost/arcgis/rest/services/DZDT2012/MapServer");
MyMap.addLayer(MyTiledMapServiceLayer) } )

</script>

(1)dojo.require("esri.map");
ArcGIS API for Javascript 是基於 dojo 的,dojo 有一個特點就是模塊化,當然 ArcGIS API for Javascript也不例外,因為所用的地圖對象是在 esri.map 當中,所以需要通過 dojo.require("esri.map")引入。其實 Dojo.require 就是加載了 Javascript 文件,功能類似於 script 標簽的作用,該函數完成后,就可以使用不屬於 dojo.js 文件中的代碼。 

(2)dojo.addOnLoad
這段腳本是這個應用程序的核心,dojo.addOnLoad 是 dojo 的一個事件,它的作用有點類似window.onload 事件,只不過 window.onload 事件是直到頁面中引用的所有的外部資源都加載后才觸發,這意味着,我們必須等待所有的圖片、對象、CSS 文件下載,如果頁面包很多或外部資源很大或網絡速度很慢,我們要等很長時間,而 dojo.addOnLoad 它在所有的模塊都可用時才觸發,無論你要使用什么包。 在 dojo.addOnLoad 事件中,往往寫的是一個初始化的代碼,如同在 windows.onload 事件中一樣,在這里初始化了一個 Map 和一個 ArcGISTiledMapServiceLayer 對象,並將 ArcGISTiledMapServiceLayer 對象添加到 Map 對象中,這樣地圖上就有了內容,正如我們看到的一樣。

 


免責聲明!

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



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