ArcGIS API for JavaScript获取和配置-ArcGIS Web 开发学习(一)

来源:互联网 发布:淘宝首页装修教程视频 编辑:程序博客网 时间:2024/05/21 18:34


ArcGIS API for JavaScript获取和配置

        最近开始学习Web GIS 开发,刚一接触就很是让人恼火,第一个问题就是:ArcGIS API for JavaScript 库和SDK的获取。

(1)我直接访问的是ARCGIS的资源中心:http://resources.arcgis.com/zh-cn/home/,点击JavaScript,出现以下页面:https://developers.arcgis.com/javascript/,实在是找不到下载地址;

(2)我访问ESRI中国,这个网址显示可以下载:http://support.esrichina.com.cn/2011/0223/960.html 。但一是没有我需要的3.15版本,二是网址老是出错下不了;

(3)我在网上搜索3.15版本,csdn上倒是有这个版本:http://download.csdn.net/download/zapzqc/9401932  ,但是我心里实在不是滋味,难道arcgis官网就没有下载地址?不可能吧!再说这个网址的兄弟怎么下载的?

       所以我又重新回到https://developers.arcgis.com/javascript/  ,点击GUIDE选择卡:https://developers.arcgis.com/javascript/jshelp/  ,然后--“About the API”--"Get the API",到达以下网址:https://developers.arcgis.com/javascript/jshelp/intro_accessapi.html 。本页最后有“Download”链接,和相关提示:“To download and install the ArcGIS API for JavaScript and SDK navigate to the ArcGIS API for JavaScript download page and log-in with your Esri global account. ” ,即需要访问链接的页面,并登录。如下图:

        点击“ArcGIS API for JavaScript download page” ,并登录我的账号,终于看到了各种SDK的下载页面,特别是ArcGIS API for JavaScript 3.15版本的下载入口!!!

https://developers.arcgis.com/downloads/  ,见下图,点击右侧图的倒三角可以看到各种历史版本的下载地址。至此问题解决!

(4)配置。根据C:\inetpub\wwwroot\arcgis_js_api\library\3.15\install_win.html 文件的要求设置。

       第一步:把API文件拷贝到 C:\inetpub\wwwroot目录下,并根据arcgis_js_api\library\3.15\install_win.html的文档介绍修改[HOSTNAME_AND_PATH_TO_JSAPI]
并按要求在浏览器地址栏里输入http://localhost/arcgis_js_api/library/3.15/3.15/init.js 测试,提示我是否运行js我选择是,但是提示location未定义错误,没办法(经测试在3.16版本里,这里步骤不会出现这个错误)。

       第二步: 然后又在chrome浏览器里输入上述init.js文件,成功(但前提是chrome浏览器不能用VPN连接外网!!!)。然后运行install_win.html文件里的测试代码,在chrome里可以显示地图但是在IE里还是一片空白,地图加载不出来,真不知该怎么办了,晕!

       第三步:Change the ArcGIS Services Directory "View In JavaScript" URL。这个配置有两种解决办法: 一是JavaScript API URL地址修改为:http://localhost/arcgis_js_api/library/3.15/3.15/init.js;自己开发html应用时,引用script脚本时,也应该写成 <script type="text/javascript" src="http://localhost/arcgis_js_api/library/3.15/3.15/init.js"></script>;二是将init.js配置为IIS的默认文档,如附件,则引用地址可写为http://localhost/arcgis_js_api/library/3.15/3.15/,会自动识别到init.js文件。
我配置前的具体设置如下:

      

      Javascript API URL :http://js.arcgis.com/3.11
      Javascript API SDK URL :http://help.arcgis.com/en/webapi/javascript/arcgis
      Javascript API CSS URL :http://js.arcgis.com/3.11/dijit/themes/tundra/tundra.css
      Javascript API CSS2 URL :http://js.arcgis.com/3.11/esri/css/esri.css
      ArcGIS.com Map Text :ArcGIS.com Map
      ArcGIS.com URL :http://www.arcgis.com/home/webmap/viewer.html

       arcgis server 10.3 的配置网络入口如下:http://localhost:6080/arcgis/admin/system/handlers/rest/servicesdirectory ,输入siteadmin账号和密码登入,点击edit就可以编辑相关项了。(如果输入http://localhost:6080/arcgis/admin/ 也是可以登录到server的,然后/system/handlers/rest/servicesdirectory 也可以找到配置文件),我不明白ESRI工程师是怎么知道这个地址的,总而言之在这个地址是可以配置的。另外,我在本地硬盘也找到了和这个配置相对应的文件,具体路径如下:D:\arcgisserver\config-store\system\handlers\rest\servicesdirectory.json ,本文件和上述地址的修改是同步的。我3.15版本配置后的具体设置如下(3.16版本一样):

      #JS API URLs
      jsapi.arcgis=http://localhost/arcgis_js_api/library/3.15/3.15/init.js
     jsapi.arcgis.sdk=http://localhost/arcgis_js_v315_sdk/arcgis_js_api/sdk
     jsapi.arcgis.css=http://localhost/arcgis_js_api/library/3.15/3.15/dijit/themes/tundra/tundra.css
    Javascript API CSS2 URL :http://localhost/arcgis_js_api/library/3.15/3.15/esri/css/esri.css

     根据C:\inetpub\wwwroot\arcgis_js_api\library\3.15\install_win.html 文 里的以下要求“Finally make sure the import statement for the esri.css stylesheet is in the <ArcGIS Server Install Location>ArcGIS\Server\framework\runtime\tomcat\webapps\arcgis#rest\www\client\mapserver\mapserverJSAPI.jsp file.” ,我在本机找到了如下路径:

D:\Program Files\ArcGIS\Server\framework\runtime\tomcat\webapps\arcgis#rest\www\client\mapserver\mapserverJSAPI.jsp ,原文如下:

<style>
@import "<%=jsapiArcgisCssUrl%>";
@import "<%=cpath%>/static/jsapi.css";
@import "<%=jsapiArcgisUrl%>/js/esri/css/esri.css";
</style>

此时注意:修改这个地方的本意就是在jsapiArcgisUrl的基础上配置CSS2的URL,所以要根据实际路径认真配置 。我的配置如下:
@import "<%=jsapiArcgisUrl%>/js/esri/css/esri.css"; 但是我上面jsapiArcgisUrl的路径已经包含了init.js文件,所以这里的配置就不对了。



2 0
原创粉丝点击