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

ArcGIS Server for JavaScript api 3.3 离线部署

2013-03-19 19:43 477 查看
ArcGIS Server for JavaScript api 离线部署 已经很简单了 只需要改一个 或者 两个文件 为什么是或者 后面就知道了,但是每部署一次就要修改 很麻烦。
为了达到减少修改次数的目的,我们稍作下修改

首先下载 离线API 下载地址 http://support.esrichina.com.cn/ ... cgis_js_v33_api.zip

解压后 arcgis_js_v33_api\library\3.3 会有两个文件夹 jsapi和jsapicompact

我们以 jsapi为例 ,
一、在此目录下新建一个js文件Global.js
其内容为

/**
* host_server_ip: jsapi部署服务器的IP地址
* host_server_port: jsapi部署服务器的端口
* relative_path: jsapi部署服务器的相对路径
*/
var arcgis_jsapi_config={
host_server_ip:"192.168.1.102",
host_server_port:"80",
relative_path:"jsapi"
};


这样下次我们在部署时只需要修改Global.js即可

二、找到init.js 和js\dojo\dojo下面的dojo.js
找到[HOSTNAME_AND_PATH_TO_JSAPI] , 将"[HOSTNAME_AND_PATH_TO_JSAPI]js/dojo/dojo"替换为arcgis_jsapi_config.host_server_ip+":"+arcgis_jsapi_config.host_server_port+"/"+arcgis_jsapi_config.relative_path+"/js/dojo/dojo"
注意 包括双引号

三、为了达到快速加载js文件的目的,我们可以通过jsapi下的几个页面,Default.ashx,index.jsp,index.php,加载js文件。所以也要对他们进行修改。很简单 只要在相应的页面中增加Global.js即可
例如:Default.ashx 中在context.Response.WriteFile(context.Server.MapPath("js\\dojo\\dojo\\dojo.js"));前
增加context.Response.WriteFile(context.Server.MapPath("Global.js"));
四、在iis中部署 即设置虚拟目录即可 ,虚拟目录为jsapi
在页面中引用有两种方法
1)通过<script type="text/javascript" src="http://192.168.1.102/jsapi/Default.ashx"></script> 一句代码即可
或者
2)

<script type="text/javascript" src="http://192.168.1.102/jsapi/Global.js"></script>

<script type="text/javascript" src="http://192.168.1.102/jsapi/init.js"></script>
测试一下 看看
代码如下:

<!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://192.168.1.102/jsapi/js/dojo/dijit/themes/claro/claro.css">
<link rel="stylesheet" href="http://192.168.1.102/jsapi/js/esri/css/esri.css">
<script type="text/javascript" src="http://192.168.1.102/jsapi/Default.ashx"></script>
<script type="text/javascript">
dojo.require("esri.map");
function init() {
var myMap = new esri.Map("mapDiv");
var myTiledMapServiceLayer = new esri.layers.ArcGISTiledMapServiceLayer("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/TaxParcel/AssessorsBasemap/MapServer");
myMap.addLayer(myTiledMapServiceLayer);
}
dojo.addOnLoad(init);
</script>
</head>
<body class="claro">
<div id="mapDiv" style="width:900px; height:600px; border:1px solid #000;"></div>
</body>
</html>


下面是我修改好的jsapi 下载地址
http://pan.baidu.com/share/link?shareid=364482&uk=3608003693
上个图



更多信息 请访问 GIS维普资讯网论坛 http://bbs.gisvip.com
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: