9.webgis地图api对比分析

前言

gis厂商:SuperMap API、ArcGIS API
地图商:百度地图、腾讯地图、高德地图
国家:天地图
开源:mapbox、leaflet、openlayers
三维:cesuim、three
其他:echarts

ArcGIS API

适合大型的项目开发,ESRI作为最完善的GIS服务商,其API提供的功能也最为强大,支持的数据类型也多,能够很好地解决数据异构,坐标转换等问题,并提供二三维一体化的服务解决方案,版本的更新迭代也很快,API能够对兼容老版本的功能,实现的GIS功能也更为全面。API分为3.x版本开发2维应用,4.x开发三维版本。但是,其地图服务器采购价格接近30w,对于中小项目来说成本也是比较大的。

SuperMap API

国内公司,也被誉为国内业内第一的公司,也提供了一整套的数据解决方案,并且更符合国情,一些功能模块主要是面向国内用户的,三维GIS能够直接利用倾斜摄影的数据。这个API适合开发大中型项目,实现的功能当然没有ARCGIS的完善,但对于基本的和稍微复杂的GIS功能来说已经足够了。(特别不喜欢他的类参考,感觉很杂,三维)。地图服务器采购价也差不多是30w,但提供服务就不如ArcGIS的了。
插件众多,可配合其他任何开源api及三维api,webgl等使用


百度地图

优势:使用人数多,可以与echarts深度结合。

劣势:坐标系鸡肋,数据不开放。

适用方向:简单的地图+图表的综合展示。

腾讯地图

优势:与微信小程序兼容性高。

劣势:使用人数少,易用性不高,底层算法有bug。

适用方向:微信公众号和小程序的地图应用。

高德地图

优势:数据开放,demo多,样式多,底图质量好。

劣势:没有太薄弱的地方。

适用方向:地图展示或专题图。


天地图

天地图的是由国家推动的,提供的服务某方面不如百度,但支持OGC协议

优势:国家的、官方的。

劣势:渲染有闪屏、易用性弱、底图难看。

适用方向:政务项目。

提供了大量官方权威数据,以供使用


OpenLayers

开源地图服务器,属于开源项目,这个主要是能节省成本,适合中小型项目,提供的功能也比较强,常常与其他软件结合使用(OpenLayer+GeoServer+uDig),提供地图服务。但是有问题就需要自己解决了,毕竟没有专门的技术支持人员。感觉更偏向弱或稍强的GIS项目,能够提供基本的数据服务。
优势:开源、全面、专业。

劣势:没审图号,使用人数较少,学习难度较高。

适用方向:交互复杂、专业的地图项目。

LeafLet

主要是移动端的API,轻量级的,提供的功能服务就很弱了,更偏向于信息展示,在数据展示方面这个API的展示效果是很不错的,也不需要专业的能力,适应性更好。
编辑功能:leaflet不支持编辑
服务类型:leaflet只支持OGC标准的WMS\WMTS服务,暂未看到其他服务;
可视化组件多:更丰富的视图组件,如图例、编辑控件等
leaflet的图层是否只能固定渲染方式
leaflet默认只支持WGS 1984 Web Mercator (Auxiliary Sphere)坐标系的服务。
leaflet没有三维相关

优势:开源、轻量、使用人数多,对地图小白友好。
劣势:没审图号,不适用于复杂交互,与地图风格定制。
适用方向:移动端,简单地图项目。

mapbox

使用WebGL技术独立渲染前端库,不需要结合其它渲染引擎(比如Leaflet、OpenLayer)来使用。
使用mapbox-gl.js的浏览器必须支持WebGL渲染,在老旧的浏览器中是不支持mapbox-gl.js的。而mapbox.js则没有此限制。

优势:开源、易用、样例多、专题图首选。

劣势:没审图号,默认OSM底图,定制化底图需要提供数据。

适用方向:专题图首选。

只支持3857,要使用wgs84或cgcs2000得换mapbox-gl2000


cesuim

受众面相对较小,是Gis相关的,也是基于WebGL开发的。它主要是三维地球相关的js库,可以展示二维地图服务(百度地图、高德地图)、倾斜摄影模型。还可以在上面做一些三维分析

1.Cesium是一个跨平台、跨浏览器的展示三维地球和地图的JavaScript库。

2.Cesium使用WebGL来进行硬件加速图形,使用时不需要任何插件支持。

3.Cesium需要有 WEB前端、图形学、GIS 三个学科的知识体系。

Cesium的作用

Cesium用于地理数据可视化,支持海量数据的高效渲染,支持时间序列动态数据的三维可视化。

具备太阳、大气、云雾等地理环境要素的动态模拟和地形等要素的加载绘制。

包含丰富的可用工具,即Cesium基本控件所提供的工具,如地理编码器,图层选择器等。

Cesium的功能

1、使用3d tiles格式流式加载各种不同的3d数据,包含倾斜摄影模型、三维建筑物、CAD和BIM的外部和内部,点云数据。并支持样式配置和用户交互操作。
2、全球高精度地形数据可视化,支持地形夸张效果、以及可编程实现的等高线和坡度分析效果。
3、支持多种资源的图像图层,包括WMS,TMS,WMTS以及时序图像。图像支持透明度叠加、亮度、对比度、GAMMA、色调、饱和度都可以动态调整。支持图像的卷帘对比。
4、支持标准的矢量格式KML、GeoJSON、TopoJSON、以及矢量的贴地效果。
5、三维模型支持gltf2.0标准的PRB材质、动画、蒙皮和变形效果。贴地以及高亮效果。
6、使用CZML支持动态时序数据的展示。
7、支持各种几何体:点、线、面、标注、公告牌、立方体、球体、椭圆体、圆柱体、走廊、管径、墙体。
8、可视化效果包括:基于太阳位置的阴影、自身阴影、柔和阴影。
9、支持大气、雾、太阳、阳光、月亮、星星、水面。
10、粒子特效:烟、火、火花。
11、地形、模型、3d tiles模型的面裁剪。
12、对象点选和地形点选。
13、支持鼠标和触摸操作的缩放、渲染、惯性平移、飞行、任意视角、地形碰撞检测。
14、支持3d地球、2d地图、2.5d哥伦布模式。3d视图可以使用透视和正视两种投影方式。
15、支持点、标注、公告牌的聚集效果。

three

提供了组件、方法和工具,用于创建和处理3D图形,使得开发者可以在Web浏览器中快速创建3D图形和动画,而不需要深入了解WebGL的底层实现。
受众面比较广,是封装了webgl的一些底层用法,让初学者更容易上手。
例如绘制一个立方体,使用webgl原生api可能要写50行代码,包括构建坐标点,顶点组织、着色器等信息;在threejs里面可能只要一句代码就可以构建。实际上也是调用webgl原生api,只是做了更大粒度的封装。


echarts

简单易上手
可与其他api配合使用,也可单独使用二、三维地图
配合使用多用于统计分析等可视化
单独使用用于简单的专题地图

地图类型:
行政地图(面积图)、行政地图(气泡图)、GIS地图(点状图)、GIS地图(热力图)、GIS地图(散点图)、GIS地图 (地图+柱状/饼图/条形图)
适用场景:
主要适用于有空间位置的数据集,一般分成行政地图(气泡图,面积图)和GIS地图,行政地图一般有省份、城市数据就够了;而细化到具体区域,只要有数据,可做区域,全国甚至全球的地图。
优劣势:
特殊情况下使用,涉及到行政区域时

总结

政府项目选天地图或者SuperMap API、ArcGIS API
地图业务比较复杂、功能繁多、有一定难度的项目选openlayers
专题图选mapbox
追求地图美感的话选LeafLet
静态专题图没有其他功能可选echarts

三维的话Threejs与Cesium相辅相成,即可单独使用也可结合使用

Threejs:受众面比较广,是封装了webgl的一些底层用法,让初学者更容易上手。例如绘制一个立方体,使用webgl原生api可能要写50行代码,包括构建坐标点,顶点组织、着色器等信息;在threejs里面可能只要一句代码就可以构建。实际上也是调用webgl原生api,只是做了更大粒度的封装。
Cesium:受众面相对较小,是Gis相关的,也是基于WebGL开发的。它主要是三维地球相关的js库,可以展示二维地图服务(百度地图、高德地图)、倾斜摄影模型。还可以在上面做一些三维分析。

CesiumJS和Three.js结合使用的三维地球可视化技术可以创造出高度交互性和可视化的三维地球模型。我们可以使用CesiumJS提供的地球数据可视化和交互性功能,由Three.js创建复杂场景和3D动画,创造沉浸式的用户体验

第1章Web GIS基础 1.1GIS及相关技术的发展 1.1.1Web开发技术的发展 1.1.2GIS的发展 1.1.3Web服务的发展 1.1.4Web GIS的发展 1.2OGC的Web服务规范 1.2.1OWS服务体系 1.2.2空间信息Web服务的角色与功能 1.2.3空间信息Web服务的系统框架 1.2.4OWS中的常用服务 1.2.5服务的请求与响应 1.3REST及REST风格的Web服务 1.3.1REST中的基础知识 1.3.2REST风格的Web服务 1.3.3REST风格的Web服务实例 1.4Web GIS的组成 1.5ArcGIS Server REST风格的Web服务 1.5.1ArcGIS S erver站点的架构 1.5.2ArcGIS Server发布的服务类型 1.5.3服务发布 1.5.4Web服务的URL及元数据 1.5.5查看地图 1.5.6使用ArcGIS Server REST风格Web服务的过程 1.5.7支持的输出格式 第2章ArcGIS API for JavaScript基础 2.1ArcGIS API for JavaScript版的Hello World 2.2ArcGIS API for JavaScript与Dojo 2.2.1ArcGIS API for JavaScript的构成 2.2.2ArcGIS API for JavaScript与Dojo的关系 2.3开发与调试工具 2.3.1集成开发环境 2.3.2调试工具 2.3.3Firebug 2.3.4其他工具软件 2.4Dojo基础知识 2.4.1JavaScript对象 2.4.2函数也是对象 2.4.3模拟类与继承 2.4.4使用模块与包管理源代码 第3章页面布局设计 3.1使用布局小部件设计页面框架 3.1.1小部件与布局小部件简介 3.1.2使用面板组织页面元素 3.1.3使用容器小部件设计页面布局 3.2可移动的小部件微架构 3.2.1自定义小部件的基础知识 3.2.2内容小部件的基类实现 3.2.3可移动的框架小部件 3.2.4测试 3.3集中控制的小部件微架构 3.3.1可集中控制的框架小部件 3.3.2小部件容器 3.3.3测试 3.3.4订阅/发布模式的事件处理机制 3.4使用菜单组织功能 3.4.1菜单容器小部件 3.4.2菜单项小部件 3.4.3菜单小部件 3.4.4测试 第4章地图与图层 4.1图层操作 4.1.1图层类及其之间的继承关系 4.1.2切片地图图层 4.1.3动态地图图层 4.1.4图形图层 4.1.5带地理参考的影像图层 4.1.6 KML图层 4.2自定义图层 4.2.1自定义动态图层——热度图图层 4.2.2自定义切片地图图层——百度地图 4.2.3自定义图层——三维建筑图 4.3地图操作 4.3.1地图窗口操作 4.3.2地图属性获取 4.3.3事件处理 4.4地图参数的基本配置 4.4.1漫游与缩放动画的参数配置 4.4.2比例滚动条的参数配置 4.4.3跨域访问参数配置 4.5图层控制器 4.5.1图层控制器小部件模板 4.5.2图层控制器小部件类 4.5.3图层控制器小部件的使用 第5章空间参考系统与几何对象 5.1空间参考系统 5.1.1空间参考系统类 5.1.2参考系统转换 5.2几何对象 5.2.1几何对象类及其之间的继承关系 5.2.2几何对象的绘制 5.2.3几何对象相关的功能模块 第6章符号与图形 6.1符号 6.1.1标记符号 6.1.2线符号 6.1.3填充符号 6.1.4文本符号 6.2图形 6.2.1图形对象的构成
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

紫雪giser

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值