写点什么

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:197832

评论

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

HTML5 游戏开发实战 | 推箱子

TiAmo

html html5 6 月 优质更文活动

inBuilder今日分享丨开源许可协议简介

inBuilder低代码平台

第十四届夏季达沃斯论坛|英特尔王锐:AI驱动工业元宇宙,释放数实融合无穷潜力

E科讯

如何充分利用制作游戏原型的免费资产,加速游戏开发

龙智—DevSecOps解决方案

游戏开发 游戏引擎

软件测试 | 性能测试范围

测吧(北京)科技有限公司

测试

【网易云信】已开源!网易云信的热点探测平台实践

网易智企

开源 热点探测

开源之夏2023中选结果公示,504名高校生将投入开源项目贡献

openEuler

Linux 开源 操作系统 openEuler 实习

金融科技领先者Broadridge选择CloudBees CI来加速软件交付

龙智—DevSecOps解决方案

ci 持续集成

软件测试 | 性能工具规划

测吧(北京)科技有限公司

测试

科兴未来|中国•湖州海外青创大赛全面开启!

科兴未来News

环保 #双创赛事# 新能源行业 湖州

AIGC+灵活用工|延长行业生命线、改写传统用工模式,还得看AI的!

TE智库

人工智能 人力资源 灵活用工 AIGC 生成式AI

华为云Classroom一站式教学实践平台,开启云端教学新征程

华为云PaaS服务小智

云计算 华为云 线上教学 线上培训

华秋一文带你读懂eMMC芯片引脚定义和工作原理

华秋电子

《2023 信创软件品牌影响力报告》发布!融云入选「信创生态」代表厂商

融云 RongCloud

IT 品牌 信创 数字 融云

Windows 系统下怎么获取 UDP 本机地址

高端章鱼哥

国内高校最大的云上科研智算平台在复旦大学正式上线

新云力量

智能 计算 复旦大学 云上科研智算平台

(信息化,数字化,智能化)这是三种不同的概念吗?

优秀

数字化 信息化 智能化

基于OpenHarmony开发的玻璃拟态天气应用(3)构建天气组件并实现毛玻璃效果

路北路陈

前端 HarmonyOS OpenHarmony应用开发 6 月 优质更文活动

AIGC+客服|智能客服上岗即失业?AI对话背后的学问大着呢

TE智库

人工智能 智能客服 AIGC 生成式AI

云原生时代,如何通过极狐GitLab x KubeSphere 构建安全应用?

极狐GitLab

DevOps 云原生 DevSecOps KubeSphere 安全左移

Vue3从入门到精通

EquatorCoco

vue.js Vue vue3.0

OSPO才是企业拥抱开源的正确选项——适兕访谈录

开源雨林

开源 OSPO LFAPAC

扫码登录认证技术原理介绍及实践

互联网工科生

程序员

什么是Buck电源?矽力杰SQ51201值得关注

华秋电子

Bean生命周期的扩展点:Bean Post Processor

华为云开发者联盟

后端 开发 华为云 华为云开发者联盟 企业号 6 月 PK 榜

英特尔以领先产品,为AI领域客户提供高性能和高性价比

E科讯

https 原理分析进阶-模拟https通信过程

蓝胖子的编程梦

https TLS SSL证书 ssl SSL/TLS 协议

浮点数-Float-Double转二进制在线工具

入门小站

需要转变ITSM策略的12个信号,您中了几个?

龙智—DevSecOps解决方案

软件测试 | 性能测试整体规划

测吧(北京)科技有限公司

测试

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