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 中国大陆许可协议
进行许可。

