HarmonyOS开发者限时福利来啦!最高10w+现金激励等你拿~ 了解详情
写点什么

Esri 何超谈基于 ArchGIS 的 Javascript API

  • 2013-06-14
  • 本文字数:2350 字

    阅读完需:约 8 分钟

地理位置信息服务本身具有良好的线下和线上属性,通过暴露数据接口的 API 实现多终端、多语言的调用,可以将其应用场景扩大化。而 Web 端在各种需求场景中又是最常见的,在 6 月 6 日的 Esri 空间信息技术开发者大会上,来自 Esri 的何超以 Dojo Widget 和 Angular.js 的开发流程为出发点,分享了他们对于构建大型 Web 地图应用的一些实践和想法。InfoQ 借此机会采访了何超,听他谈谈 ArchGIS Javascript API:

InfoQ:我们知道 ArcGIS 是一款非常给力的国际化地理信息系统软件,在提供 Javascript API 的时候,与 ArcGIS 本身的数据结构相比,有哪些特殊处理?栅格、矢量地图数据的存储方式分别是怎样的?

何超:ArcGIS 本身提供了从 ShapeFile 到企业级数据库的各种存储方式以满足不同用户不同场景的需求。Javascript API 在处理栅格和矢量地图的时候并不直接去读取 Map Data,更多的是依附于 ArcGIS Server 所提供的 RESTfull 风格的各种不同类型的服务,如地图服务(Map Service)、影像服务(Image Service)等。因此,对于 JS 的开发者来说,大可不必去关心底层的数据是如何存储的,只需要了解 ArcGIS Server 所暴露的服务的相关信息即可。举个例子来说,对于大数据量的影像数据,我们在后台可能采取的是镶嵌数据集(Mosaic Dataset),这种方式进行存储,但是 Arcgis Server 并不会直接将地图数据暴露给用户,提供给用户的是一个类似于http://sampleserver6.arcgisonline.com/arcgis/rest/services/CharlotteLAS/ImageServer 这样的地址。用户是通过 ArcGIS Server 的 RestAPI 来实现客户端与 ArcGIS Server 之间的交互。 JS API 所接受的是 ArcGIS Server 所返回的图片或者是 json 数据。而对与用户本身在前端所加载一些譬如 gps 轨迹等数据信息,都是以 json 的格式处理的。

InfoQ:地图未来很重要的一个发展趋势是实景、三维、立体。那么,基于 ArcGIS 的 JS API,会提供哪些地理三维模型的 API 方法呢?比如实现街景的图层拼接和建模的底层 API 接口、或实现全 3D 效果的地理物体,比如山川、立交桥、建筑物等。

何超:关于 Web 3D,这个一直是 Esri 中国研发中心在开发,会在今年的开发者大会上给大家带来精彩的 Demo 演示。从我目前了解的情况,3D API 跟之前的 2D API 非常类似,开发者可以很容易上手,其代码也很容易移植。Web 3D 的 API 在原有 2Dapi 的基础上扩展了 Geometry、Layer、Symbol、Renderer 等,例如,symbol 针对 3D 场景新增了 BoxMarkerSymbol、CylinderMarkerSymbol、SphereMarkerSymbol、MediaMarkerSymbol。3D Map 将平滑加载原有的 2D Layer,支持跟 2D 几乎一样的 Geometry 和 Symbol,以及更多的 3D Symbol, 如 Box、Cylinder、Sphere 等。同时针对 Layer,Web3D 新增了支持 3D Model(如城市模型)ArcGIS3DServiceLayer 和 ArcGISElevationServiceLayer,以及贴地模式的 Graphic。此外,3D API 无缝结合 2D API,部分类甚至可以共用(如 InfoTemplate 和 Query 等)。Web 3D 的 API 还会提供一个类似于 Flex Viewer 的 3D Viewer,实现 3D 应用的快速搭建。3D 的 API 紧密的跟 Esri 的 CityEngine、ArcGIS Server 结合在一起,实现从建模到服务再到应用的一体化。

InfoQ:我们知道,现在移动终端发展很快,iOS、android 两大平台的 JS 运行时差别较大,很多标签和接口的执行效果差别明显,webkit 内核的实现在各个平台上都有所不同,性能差异很大。 那么,基于 ArcGIS 的 JS API,在移动终端有哪些特殊的性能优化、机型适配方面的考虑呢?

何超:为了适配移动端的需求,ArcGIS API 针对移动互联网做了很多的优化。首先就是对 API library 的大小进行了优化,提供 Compact 版本的 API(~125kb)。至于浏览器和平台的差异,mobile 版本的 API 也是基于 dojo mobile 的,所以这种浏览器的差异性就交给 dojo 来处理,可以说 Dojo 支持的移动设备我们 API 都是支持的。可以使开发者尽量少的去关心浏览器的差异,实现对开发者的友好。

举个例子来说,ArcGIS API 在不同的平台上采用什么样的绘图引擎来绘制 2 维地图?我们知道不同 webkit 上在 2D 绘图上的选择是很多,可以用 Canvas、可以用 SVG,那对于不同的平台究竟用那一种?针对这种问题,ArcGIS JS API 会基于 dojo 提供的 dojo.gfx 根据浏览器的不同来自己去判断、选择最适合该浏览器的绘图引擎。

再举个例子,ArcGIS API 在 PC 浏览器上的信息弹出窗口 POPUP 和 InfoWindow 是很大很大的一个 div,但是 Mobile 版本的 API 针对移动设备屏幕小的特点,提供了 Infowindow lite 和 mobile popup 这两个 widget。

在对移动设备的兼容性上,目前 3.5 版本的 API 实现了对 Android 2.2+、Blackberry 6+、iOS 3+ 等平台的全覆盖。此外,esri 还体现了极大的兼容性,可以用在其他的移动端框架譬如(Sencha Touch、jQuery Mobile)的时候来调用我们的 api。所以,可以说 api 在对移动设备的兼容性还是很好的。

InfoQ:ArcGIS 功能强大,但是如果使用正版,需要很高的费用,不知在 JS API 方面的收费情况是怎样的?未来会以怎样的形式与互联网公司合作?会成为一个独立运营的平台吗?

何超:ArcGIS 一直对开发者十分友好,所以 JS API 在用作开发、测试、评估等非商业用途的时候,是不收取开发者任何费用的。对于利用 JS API 开发的网络 APP 或者是移动 APP 需要用于商业用途的时候,则需要购买 ArcGIS Server 或者是需要购买 ArcGIS Online 的订阅(subscription)。 Esri 一直以积极、开放的姿态,期待并正在与一些互联网公司展开合作。GIS 中不仅仅有地图,在地图之外,还有地理,人文地理、自然地理、经济地理等。Esri 希望依托 ArcGIS Online 这个云 GIS 平台,结合 ArcGIS 的强大的地理分析、预测功能,为互联网公司提供除地图之外的,更多专题信息、更多具有“地理”印记的信息。

2013-06-14 00:197721

评论

发布
暂无评论
发现更多内容

用户密码验证函数

周冬辉

加密

Apache Pulsar 社区周报:08-15 ~ 08-21

Apache Pulsar

云原生 Apache Pulsar 消息系统 消息中间件

【华为云数据库技术大公开】机房失火后,还能拯救你的数据吗?

华为云开发者联盟

数据库 机房 华为云 数据存储 云数据库

极客大学架构师训练营 0 期 week 11 学习笔记

chun1123

安全 高可用系统的架构

架构师训练营 第十一周 作业

CR

Week 11 作业

鱼_XueTr

架构师训练营第 0 期第 11 周作业

无名氏

Week11总结

熊威

系统稳定高可用的方案以及用户密码验证函数

Acker飏

etcd的高可用

李小匪

极客时间架构师训练营 - week11 - 作业 2

jjn0703

极客大学架构师训练营

系统不可用的原因和解决方案

极客李

【高并发】高并发秒杀系统架构解密,不是所有的秒杀都是秒杀!

冰河

高并发 分布式限流 秒杀系统 异步削峰 签约计划第二季

漫画解读:唐僧师徒如何帮助大唐官网打造CDN+OSS完美架构?

阿里云Edge Plus

Week11作业1

熊威

高可用的系统架构

莫莫大人

极客大学架构师训练营

Week 11命题作业

Jeremy

安全架构和高可用系统的架构

周冬辉

高可用系统的架构

java安全编码指南之:拒绝Denial of Service

程序那些事

Java 安全编码指南 java安全编码 DOS攻击 zip炸弹

架构师训练营 Week 11 总结

Wancho

极客大学架构师训练营 0 期 week 11 作业

chun1123

高可用 密码校验

架构师训练营 - 第 11 周作业

Jam

用户密码验证函数

任小龙

Flink算子状态-9

小知识点

scala 大数据 flink

第十一周命题作业

菲尼克斯

第十一周学习总结

菲尼克斯

架构师训练营第十一周作业

子豪sirius

架构师训练营 Week 11 作业

Wancho

架构师训练营 第十一周 总结

CR

Newbe.Claptrap 框架入门,第四步 —— 利用 Minion,商品下单

newbe36524

云计算 微服务 dock .net core ASP.NET Core

云上度假村木莲庄酒店助你远离城市的喧嚣

InfoQ_967a83c6d0d7

Esri何超谈基于ArchGIS的 Javascript API_语言 & 开发_李雪韬_InfoQ精选文章