部署ArcGIS JS API 离线包(Tomcat与IIS)

系统 1761 0

ArcGIS Javascript API 在国内访问一直非常缓慢,Ersi也没有部署国内CDN的意思,但是它提供了离线安装包。安装过程其实挺简单的,就是有些繁琐, Tomcat的部署不太清晰。主要为了记录一下,便于以后查阅。

    1.下载离线包

首先下载ArcGIS JS API 离线包需要注册一个免费的帐号,注册地址为: https://webaccounts.esri.com/cas/index.cfm  。然后进入ESRI官网下载页面选择下载,版本:  v2.7 v3.0 v3.2  .如果访问缓慢的话,可以从微盘下载: v2.7 v3.0 v3.2  .

      2.安装离线包

  1.    解压 下载的压缩包,将里面的 \ arcgis_js_api\library  目录的所有内容全部拷贝到你的web 服务器中。比如的以下路径例子所示,
    •   Tomcat: \home\vent\tomcat7\webapps\arcgis_js_api\library
    •   IIS: C:\Inetpub\wwwroot\arcgis_js_api\library
  2.  将以下文件在文本编辑器(如Notepad++,Vim)中 打开
    •   Tomcat: \home\vent\tomcat7\webapps\arcgis_js_api\library\2.7\jsapi\js\ esri\esri.js
    •   IIS:  C:\Inetpub\wwwroot\arcgis_js_api\library\2.7\jsapi\js\esri\esri.js
  3. 搜索 esri.js 文件中的  '[ HOSTNAME_AND_PATH_TO_JSAPI ]' , 用以下URI 代替 之。
    •  Tomcat:  <myserver>:8080/arcgis_js_api/library/2.7/jsapi/
    •   IIS: <myserver>/arcgis_js_api/library/2.7/jsapi/

    myserver 是你的网站访问URI,本地可以用localhost/127.0.0.1来代替.

  4.  将以下文件在文本编辑器(如Notepad++,Vim)中 打开 :
    •   Tomcat: \home\vent\tomcat7\webapps\arcgis_js_api\library\2.7\jsapi\dojo\dojo\dojo.xd.js
    •   IIS:  C:\Inetpub\wwwroot\arcgis_js_api\library\2.7\jsapi\js\dojo\dojo\dojo.xd.js
  5.   搜索 dojo.xd.js文件中的三个 ' [HOSTNAME_AND_PATH_TO_JSAPI] ' ,用以下URI 代替 之。
    • Tomcat:  <myserver>:8080/arcgis_js_api/library/2.7/jsapi/
    •   IIS: <myserver>/arcgis_js_api/library/2.7/jsapi/
  6.  将以下文件在文本编辑器(如Notepad++,Vim)中打开 :
    •   Tomcat: \home\vent\tomcat7\webapps\arcgis_js_api\library\2.7\jsapi\dojo\dojo\dojo.xd.js.uncompressed.js
    •   IIS:  C:\Inetpub\wwwroot\arcgis_js_api\library\2.7\jsapi\js\dojo\dojo\dojo.xd.js.uncompressed.js
  7.  搜索dojo.xd.js文件中的三个 '[HOSTNAME_AND_PATH_TO_JSAPI]' ,用以下URI代替之。
    • Tomcat: <myserver>:8080/arcgis_js_api/library/2.7/jsapi/
    •   IIS: <myserver>/arcgis_js_api/library/2.7/jsapi/
  8. (可选) 如果你在项目中使用到压缩版的ArcGIS JS API,需要在arcgis_js_api\library\2.7\jsapicompact重复4-7的步骤。
  9. 将这个文件夹部署到Web服务器上。由于ArcGIS JavaScript APIs将多个 JavaScript 文件通过单一的URL流式地提供给客户端,所以它需要默认的处理器来模拟、控制JS文件流. ESRI提供了三种方式,在\library\2.7\jsapi\文件夹下,包括index.jsp, index.php,Default.ashx .配置如下,Tomcat配置过程:
    • 打开 \home\vent\tomcat7\webapps\arcgis_js_api\library\2.7\jsapi\init.js
    • 搜索init.js文件中的  '[HOSTNAME_AND_PATH_TO_JSAPI]' , 用<myserver>:8080/arcgis_js_api/library/2.7/jsapi/代替之
    • 在页面调用的时候使用方法:
                  <script type="text/javascript" src="http://<myserver>:8080/arcgis_js_api/library/2.7/jsapi/init.js"></script>
                

    IIS配置过程:

    • 打开IIS 管理器.
    • 打开包含Default.ashx 文件的文件夹 (C:\Inetpub\wwwroot\arcgis_js_api\library\2.7\jsapi).
    • 右键点击属性,选择文件Tab。确定启用默认内容页被勾选 。
    • 点击添加到按钮 .输入 "Default.ashx,点击确认并退出。

          3.测试

测试代码如下:

      
        <!
      
      
        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://<myserver>:8080/arcgis_js_api/library/2.7/jsapi/js/dojo/dijit/themes/tundra/tundra.css"
      
      
        >
      
      
        <
      
      
        link 
      
      
        rel
      
      
        ="stylesheet"
      
      
         type
      
      
        ="text/css"
      
      
         href
      
      
        ="http://<myserver>:8080/arcgis_js_api/library/2.7/jsapi/js/esri/css/esri.css"
      
      
        />
      
      
        <
      
      
        script 
      
      
        type
      
      
        ="text/javascript"
      
      
         src
      
      
        ="http://<myserver>:8080/arcgis_js_api/library/2.7/jsapi/init.js"
      
      
        ></
      
      
        script
      
      
        >
      
      
        <
      
      
        script 
      
      
        type
      
      
        ="text/javascript"
      
      
        >
      
      
        

      dojo.require(
      
      
        "
      
      
        esri.map
      
      
        "
      
      
        );

      
      
      
        function
      
      
         init() {

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

        
      
      
        //
      
      
        note that if you do not have public Internet access then you will need to point this url to your own locally accesible cached service.
      
      
        var
      
      
         myTiledMapServiceLayer 
      
      
        =
      
      
        new
      
      
         esri.layers.ArcGISTiledMapServiceLayer(
      
      
        "
      
      
        http://cache1.arcgisonline.cn/ArcGIS/rest/services/ChinaOnlineCommunity/MapServer
      
      
        "
      
      
        );

        myMap.addLayer(myTiledMapServiceLayer);

      }

      dojo.addOnLoad(init);

    
      
      
        </
      
      
        script
      
      
        >
      
      
        </
      
      
        head
      
      
        >
      
      
        <
      
      
        body 
      
      
        class
      
      
        ="tundra"
      
      
        >
      
      
        <
      
      
        div 
      
      
        id
      
      
        ="mapDiv"
      
      
         style
      
      
        ="width:900px; height:600px; border:1px solid #000;"
      
      
        ></
      
      
        div
      
      
        >
      
      
        </
      
      
        body
      
      
        >
      
      
        </
      
      
        html
      
      
        >
      
    

 

使用Chrome Develop Tool 或者其它JS调试工具查看是否出错。


本作品由 VentLam 创作,采用 知识共享署名-非商业性使用-相同方式共享 2.5 中国大陆许可协议 进行许可。

部署ArcGIS JS API 离线包(Tomcat与IIS)


更多文章、技术交流、商务合作、联系博主

微信扫码或搜索:z360901061

微信扫一扫加我为好友

QQ号联系: 360901061

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描下面二维码支持博主2元、5元、10元、20元等您想捐的金额吧,狠狠点击下面给点支持吧,站长非常感激您!手机微信长按不能支付解决办法:请将微信支付二维码保存到相册,切换到微信,然后点击微信右上角扫一扫功能,选择支付二维码完成支付。

【本文对您有帮助就好】

您的支持是博主写作最大的动力,如果您喜欢我的文章,感觉我的文章对您有帮助,请用微信扫描上面二维码支持博主2元、5元、10元、自定义金额等您想捐的金额吧,站长会非常 感谢您的哦!!!

发表我的评论
最新评论 总共0条评论