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

  • 相关阅读:
    事件聚合IEventAggregator和 Ihandle<T>
    基于.NET打造IP智能网络视频监控系统
    包图Package
    MVC与EasyUI结合增删改查
    Helper Method
    Moq & RhinoMocks
    Asp.net MVC集成Google Calendar API(附Demo源码)
    你可能不知道的跨域解决方案
    jQuery选择器大全
    关于Sqlite的一个demo
  • 原文地址:https://www.cnblogs.com/gisvip/p/2969840.html
Copyright © 2020-2023  润新知