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="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