ArcGIS API for JavaScript超强部署方案

  1. 云栖社区>
  2. 博客列表>
  3. 正文

ArcGIS API for JavaScript超强部署方案

上官瑾文 2018-01-11 20:35:41 浏览3951 评论1

摘要: 配置ArcGIS API for JavaScript,帮助入门的GISer跨过第一道门槛,同时也作为对工作的梳理、记录。

很多GISer或者非GISer,在要学GIS界最强大的ArcGIS API for JavaScript的时候是不是被API的配置给搞懵了,是不是被SSL证书或者HTTPS搞瞎了,是不是有种,我还没入门,就让我先解决这些和GIS没关系的问题?还有什么FQDN(Fully qualified domain name:完全限定域名).......你心累,不巧!今天我师弟就问我4.X的API部署不了,要什么SSL证书。嗯,我也其实挺心累的。作为混了好几年的GISer,感觉有必要写一份入门级部署API的博客了。

下载API

官方地址: http://links.esri.com/javascript-api/latest-downloadhttps://developers.arcgis.com/downloads/apis-and-sdks?product=javascript , 当然你得有个Esri的开发者账号,如果没有,那就申请一个,切记跟着邮件内容走,否则会走错路。登录之后是如下页面:
image

相信你已经看到了要看到的,点击蓝色API按钮,默默等待浏览器下载完毕。当然你如果需要把SDK也部署到本地,就点击Document,下载。

配置

  1. 将下载的ZIP包解压到我的项目WMS1/gis中,打开解压后的文件,双击index.html,选择你要部署的平台,可以随便选择一个, 我选择了ArcGIS API for JavaScript; 在这需要说明, 我要部署的是和平台无关的,只是和你的Web访问目录有关的超强配置. Write once, run in any Web container!
    image
  2. 打开后直接定位到Modify the Build (manually)节点;别的都不用看。 如下显示:
    image
  3. 移动文件;将/library/4.6/下的所有文件拷贝到arcgis_js_api文件下,并将library文件夹删除。效果如下:
    image
  4. 根据提示,用Notepad++打开加压包目录下的[api package] /arcgis_js_api/dojo/dojo.js;查找提示的文字 [HOSTNAME_AND_PATH_TO_JSAPI];搜索到之后将baseUrl中的值宣布 选中,用 /WMS1/gis/arcgis_js_api/dojo"替换;效果如下:
    image
  5. 对[api package]/arcgis_js_api/init.js进行同样的操作,效果如下:
    c74cb97e83d90165eb2373fbd3ab1c95b2272d66
  6. 测试部署是否成功;拷贝如下代码到WMS1/gis/index.html中

    <!DOCTYPE html>
    <html>
    <head>
      <meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
      <meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no" />
      <title>Test Map</title>
      <link rel="stylesheet" href="/WMS1/gis/arcgis_js_api/dijit/themes/cl aro/clarocss" />
      <link rel="stylesheet" href="/WMS1/gis/arcgis_js_api/esri/css/main.  css" />
      <style>
      html,
      body,
      #viewDiv {
      margin: 0;
      padding: 0;
      width: 100%;
      height: 100%;
      }
    </style>
    <script src="/WMS1/gis/arcgis_js_api/dojo/dojo.js"></script>
    <script>
    var myMap, view;
    require([
    "esri/Map",
    "esri/views/MapView",
    "dojo/domReady!"
    ], function (Map, MapView) {
    myMap = new Map({
    basemap: 'osm'
    });
    view = new MapView({
    center: [-111.87, 40.57], // long, lat
    container: "viewDiv",
    map: myMap,
    zoom: 6
    });
    });
    </script>
    </head>
    <body class="claro">
    <div id="viewDiv"></div>
    </body>
    </html>
  7. 神奇的事情有木有发生?我是发生了。
    image
  8. 到此我们的环境就配置好了,你的小宇宙该爆发了。

总结

ArcGIS JS API的配置只是和你项目启动的Web容器的路径有关系,和HTTPS还是HTTP、SSL并没有太大关系,如果要将API部署在远程机器上,那一般情况就是需要了解HTTPS、HTTP、FQDN等等了,这也是官方推荐的方法;使用上面这种配置的好处是,我的项目跟协议、主机名还有端口没有任何关系,只是和启动的Web容器的相对目录有关了。这在Node的http-server或者Webpack-devServer等作为Web启动容器的时候,你想在Linux还是Unix上运行都木问题的,而且目录位置随便放。只能帮你到这了。

用云栖社区APP,舒服~

【云栖快讯】诚邀你用自己的技术能力来用心回答每一个问题,通过回答传承技术知识、经验、心得,问答专家期待你加入!  详情请点击

网友评论

1F
小笼包酱

赞一个

上官瑾文
文章95篇 | 关注26
关注
API 网关(API Gateway),提供高性能、高可用的 API 托管服务,帮助用户对外... 查看详情
以阿里云成熟的商业化云服务为基础,为游戏开发者、运营企业提供专属集群、尊享VIP服务、专项扶... 查看详情
支持 PB 级数据存储的海量分布式关系型数据库。它支持 MySQL 数据库接口,采用可扩展的... 查看详情
为您提供简单高效、处理能力可弹性伸缩的计算服务,帮助您快速构建更稳定、安全的应用,提升运维效... 查看详情
阿里云总监课正式启航

阿里云总监课正式启航