如何将arcgis api for js 部署到本地

JavaScript012

如何将arcgis api for js 部署到本地,第1张

1、下载SDK及API包,将API包解压到本地,如E:\Web\Arcgis3.5\。并将SDK包里的arcgis_js_v35_api文件夹解压到E:\Web\Arcgis3.5\arcgis_js_v35_api\中覆盖。(SDK提供了丰富的示例及API文档,强烈建议下载)

2、找到文件init.js,路径如:E:\Web\Arcgis3.5\arcgis_js_v35_api\arcgis_js_api\library\3.5\3.5,并查找[HOSTNAME_AND_PATH_TO_JSAPI],将"[HOSTNAME_AND_PATH_TO_JSAPI]js/dojo/dojo"替换为实际路径,如:"<主机名>/arcgis_js_v35_api/arcgis_js_api/library/3.5/3.5/js/dojo/dojo"。

3、找到文件dojo.js,路径如:E:\Web\Arcgis3.5\arcgis_js_v35_api\arcgis_js_api\library\3.5\3.5\js\dojo\dojo,做同样的修改。

4、打开IIS6.0信息服务管理器,右键网站“添加网站”,选择物理路径及端口2000(可随意),确定后选中,双击进入“目录浏览”并启用,重新启动网站。

5、校验配置:

1、首先下载js_api

api下载地址:arcgis_js_api

sdk(软件开发帮助文档)下载地址:arcgis_js_sdk

2、离线部署arcgis_js_api

解压下载的压缩包,将里面的\arcgis_js_api\library目录的所有内容全部拷贝到你的web 服务器中。比如的我的路径如下所示,

D:\Java Software\apache-tomcat-7.0.42\webapps\arcgis_js_api\library\3.9\jsapi

3、查找替换路径

我们把拷贝到webapps文件夹下的两处locahost路径替换掉,js_3.9版本的额是在如下的两处(不同的版本的路径替换路径不同)

"*\webapps\arcgis_js_api\library\3.9\jsapi\init.js"

"*\webapps\arcgis_js_api\library\3.9\jsapi\js\dojo\dojo\dojo.js" 文件中

4、替换路径

用记事本代开上面查找到的两个文件,用快捷键Ctrl+H查找[HOSTNAME_AND_PATH_TO_JSAPI]

替换为:localhost:8080/arcgis_js_api/library/3.9/jsapi/(部署在本地的话选择localhost,若不是选择你的服务器ip+tomcat端口号)

第二处也是一样,所以不在重复

5、测试部署环境

打开Myeclipse,新建web工程,在index.jsp页面中 用如下的代码区覆盖即可

<%@ page language="java" contentType="text/htmlcharset=UTF-8" pageEncoding="UTF-8"%>

<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">

<html>

<head>

<title>ArcGIS离线部署Demo</title>

<meta http-equiv="pragma" content="no-cache">

<meta http-equiv="cache-control" content="no-cache">

<meta http-equiv="expires" content="0">

<link rel="stylesheet" type="text/css" href="http://localhost:8888/arcgis_js_api/library/3.9/jsapi/js/dojo/dijit/themes/tundra/tundra.css">

<link rel="stylesheet" type="text/css" href="http://localhost:8888/arcgis_js_api/library/3.9/jsapi/js/esri/css/esri.css" />

<script type="text/javascript" src="http://localhost:8888/arcgis_js_api/library/3.9/jsapi/init.js"></script>

<script type="text/javascript">

// 布局小部件

//dojo.require("dijit.layout.BorderContainer")

// 面板

dojo.require("dijit.layout.ContentPane")

dojo.require("esri.map")

function init() {

var myMap = new esri.Map("mapDiv")

var myTiledMapServiceLayer = new esri.layers.ArcGISTiledMapServiceLayer("http://server.arcgisonline.com/ArcGIS/rest/services/World_Topo_Map/MapServer")

myMap.addLayer(myTiledMapServiceLayer)

}

dojo.addOnLoad(init)

</script>

</head>

<body class="tundra">

<div id="mapDiv" style="width:100%height:100%border:1px solid #000"></div>

</body>

</html>