ArcGIS Javascript API 在國內訪問一直非常緩慢,Ersi也沒有部署國內CDN的意思,但是它提供了離線安裝包。安裝過程其實挺簡單的,就是有些繁瑣, Tomcat的部署不太清晰。主要為了記錄一下,便于以后查閱。
? ? 1.下載離線包
首先下載ArcGIS JS API 離線包需要注冊一個免費的帳號,注冊地址為: https://webaccounts.esri.com/cas/index.cfm ?。然后進入ESRI官網下載頁面選擇下載,版本:? v2.7 ,? v3.0 ,? v3.2 ?.如果訪問緩慢的話,可以從微盤下載: v2.7 ,? v3.0 ,? v3.2 ?.
? ? ? 2.安裝離線包
-
??
解壓
下載的壓縮包,將里面的 \
arcgis_js_api\library
?目錄的所有內容全部拷貝到你的web 服務器中。比如的以下路徑例子所示,- ? Tomcat: \home\vent\tomcat7\webapps\arcgis_js_api\library
- ? IIS:?C:\Inetpub\wwwroot\arcgis_js_api\library
-
?將以下文件在文本編輯器(如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
-
搜索
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來代替.
-
?將以下文件在文本編輯器(如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
-
?
搜索
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/
-
?將以下文件在文本編輯器(如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
-
?搜索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/
- (可選) 如果你在項目中使用到壓縮版的ArcGIS JS API,需要在arcgis_js_api\library\2.7\jsapicompact重復4-7的步驟。
-
將這個文件夾部署到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 中國大陸許可協議
進行許可。
更多文章、技術交流、商務合作、聯系博主
微信掃碼或搜索:z360901061

微信掃一掃加我為好友
QQ號聯系: 360901061
您的支持是博主寫作最大的動力,如果您喜歡我的文章,感覺我的文章對您有幫助,請用微信掃描下面二維碼支持博主2元、5元、10元、20元等您想捐的金額吧,狠狠點擊下面給點支持吧,站長非常感激您!手機微信長按不能支付解決辦法:請將微信支付二維碼保存到相冊,切換到微信,然后點擊微信右上角掃一掃功能,選擇支付二維碼完成支付。
【本文對您有幫助就好】元
