ArcGIS Server for JavaScript api 3.3 离线部署

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

 

posted @ 2013-03-19 19:43  gisvip  阅读(1803)  评论(1编辑  收藏  举报