您的位置:首页 > Web前端 > JavaScript

ArcGIS API for Javascript 2.X 离线部署(以2.6为例)

2011-12-22 16:16 585 查看
1. 先在官网上ArcGIS API for JavaScript download page(需要有账户)下载最新的API:arcgis_js_v26_api.zip(点击直接下载)和 SDK: arcgis_js_v26_sdk.zip(直接下载);

2. 将下载下来的 arcgis_js_v26_api.zip 和 arcgis_js_v26_sdk.zip 分别解压,将各自文件夹下的的 arcgis_js_api 文件夹拷贝到 C:\inetpub\wwwroot 下,因为拷贝的文件夹名称都为arcgis_js_api,因此当拷贝第二个文件夹时选择覆盖即可;

3. 将 C:\inetpub\wwwroot\arcgis_js_api\library\2.6\jsapi\js\esri 下的 esri.js 文件

C:\inetpub\wwwroot\arcgis_js_api\library\2.6\jsapi\js\dojo\dojo 下的 dojo.xd.js 及 dojo.xd.js.uncompressed.js 两个文件

中的 "[HOSTNAME_AND_PATH_TO_JSAPI] 替换为 djConfig.url + "/arcgis_js_api/library/2.6/jsapi/ (注意别少了冒号)
同理将

C:\inetpub\wwwroot\arcgis_js_api\library\2.6\jsapicompact\js\esri 下的 esri.js 文件

C:\inetpub\wwwroot\arcgis_js_api\library\2.6\jsapicompact\js\dojo\dojo 下的 dojo.xd.js 及 dojo.xd.js.uncompressed.js 两个文件

中的 "[HOSTNAME_AND_PATH_TO_JSAPI] 替换为 djConfig.url + "/arcgis_js_api/library/2.6/jsapicompact/ (注意冒号);

4. 在IIS中将 arcgis_js_api 转换为应用程序,并在默认文档中添加:default.ashx ;

5. var djConfig = { parseOnLoad: true, url: "localhost" }; 加一个url属性,url为api所在服务器IP地址

http://serverapi.arcgisonline.com/jsapi/arcgis/?v=2.6 替换为 http://localhost/arcgis_js_api/library/2.6/jsapi localhost要改为api所在服务器IP地址

http://serverapi.arcgisonline.com/jsapi/arcgis/2.6/js/dojo/dijit/themes/claro/claro.css 替换为
http://localhost/arcgis_js_api/library/2.6/jsapi/js/dojo/dijit/themes/claro/claro.css localhost要改为api所在服务器IP地址 ;
修改后的代码如下: 如果换地方部署,只要将本地的arcgis_js_api 文件夹直接拷贝过去并进行上边第4、5(改为api所在服务器IP地址)步的操作就可以了

1 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
2 <html>
3 <head>
4 <meta http-equiv="Content-Type" content="text/html; charset=utf-8">
5 <meta http-equiv="X-UA-Compatible" content="IE=7,IE=9" />
6 <!--The viewport meta tag is used to improve the presentation and behavior of the samples
7 on iOS devices-->
8 <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no" />
9 <title>Topographic Map</title>
10 <link rel="stylesheet" type="text/css" href="http://localhost/arcgis_js_api/library/2.6/jsapi/js/dojo/dijit/themes/claro/claro.css">
11 <style>
12 html, body
13 {
14 height: 100%;
15 width: 100%;
16 margin: 0;
17 padding: 0;
18 }
19 .esriScalebar
20 {
21 padding: 20px 20px;
22 }
23 #map
24 {
25 padding: 0;
26 }
27 </style>
28 <script type="text/javascript"> var djConfig = { parseOnLoad: true, url: "localhost" };</script>
29 <script type="text/javascript" src="http://localhost/arcgis_js_api/library/2.6/jsapi"></script>
30 <script type="text/javascript">
31 dojo.require("dijit.layout.BorderContainer");
32 dojo.require("dijit.layout.ContentPane");
33 dojo.require("esri.map");
34
35 var map;
36
37 function init() {
38 var initExtent = new esri.geometry.Extent({ "xmin": -122.46, "ymin": 37.73, "xmax": -122.36, "ymax": 37.77, "spatialReference": { "wkid": 4326} });
39 map = new esri.Map("map", {
40 extent: esri.geometry.geographicToWebMercator(initExtent)
41 });
42 //Add the topographic layer to the map. View the ArcGIS Online site for services http://arcgisonline/home/search.html?t=content&f=typekeywords:service 43 var basemap = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer");
44 map.addLayer(basemap);
45
46 dojo.connect(map, 'onLoad', function (theMap) {
47 //resize the map when the browser resizes
48 dojo.connect(dijit.byId('map'), 'resize', map, map.resize);
49 });
50 }
51
52 dojo.addOnLoad(init);
53 </script>
54 </head>
55 <body class="claro">
56 <div dojotype="dijit.layout.BorderContainer" design="headline" gutters="false" style="width: 100%;
57 height: 100%; margin: 0;">
58 <div id="map" dojotype="dijit.layout.ContentPane" region="center" style="border: 1px solid #000;
59 padding: 0;">
60 </div>
61 </div>
62 </body>

若想让自己机器的rest服务调用的javascript api也使用离线文件,可修改 C:\inetpub\wwwroot\ArcGIS\rest 下的 rest.config 文件,修改其中的两个节点为:

<ArcGIS>http://locahost/arcgis_js_api/library/2.6/jsapi/</ArcGIS>

<ArcGISCSS>http://locahost/arcgis_js_api/library/2.6/jsapi/js/dojo/dijit/themes/tundra/tundra.css</ArcGISCSS> (localhost改为api所在服务器)
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: