必备GIS知识总结
前端开发绕不过去的技术之一是地图开发,在工作中遇到两个突出的问题:“低级”问题是开发地图功能很久了,对多种坐标系之间的转换关系依然不太清楚;“高级”问题就是对于公司内外琳琅满目的地图引擎,工具库,第三方地图相关数据,如何对标项目需求,去评估像地图选型,第三方地图对接的问题。
其实这是同一个问题:对GIS底层概念不清楚。下面介绍必备的GIS基础知识和地图开发流程。
一、 地图开发基础概念
地理信息系统(GIS,Geographic Information System)是一门综合性学科,涵盖众多知识,也广泛引用在多学科领域。GIS有一套统一的国际标准规范,国内外的地图相关产品也遵循这套数据和服务规范。
1、常用坐标系
WGS-84坐标系 | 地心坐标系,GPS原始坐标体系 在中国,任何一个地图产品都不允许使用GPS坐标。 |
GCJ-02 坐标系 | 国测局坐标,火星坐标系 1)国测局02年发布的坐标体系,它是一种对经纬度数据的加密算法,即加入随机的偏差。 2)互联网地图在国内必须至少使用GCJ-02进行首次加密,不允许直接使用WGS-84坐标下的地理数据,同时任何坐标系均不可转换为WGS-84坐标。 3)是国内最广泛使用的坐标体系,高德、腾讯、Google中国地图都使用它。 |
CGCS2000坐标系 | 国家大地坐标系 该坐标系是通过中国GPS 连续运行基准站、 空间大地控制网以及天文大地网与空间地网联合平差建立的地心大地坐标系统。 |
BD-09坐标系 | 百度中国地图所采用的坐标系,由GCJ-02进行进一步的偏移算法得到。 |
搜狗坐标系 | 搜狗地图所采用的坐标系,由GCJ-02进行进一步的偏移算法得到。 |
图吧坐标系 | 图吧地图所采用的坐标系,由GCJ-02进行进一步的偏移算法得到。 |
2、国内地图软件所采用的坐标系简介
百度地图 | 1)境内(包括港澳台):BD09 a、在GCJ-02坐标系基础上再次加密BD09 b、支持WGS-84、GCJ-02转换成BD09,反向不支持,并且批量转换一次有条数限制 2)境外:WGS-84 | 微软bing地图(BingMap) | 全球统一:WGS-84 |
高德地图 | 1)境内:GCJ-02 a、WGS-84——>GCJ-02(高德有接口提供,反过来没有) 2)境外:暂不支持 3)AMap 就是高德地图,是高德地图在纳斯达克上市用的名字,主要面向互联网企业或个人提供免费API服务 4)MapABC 是高德集团底下的图盟公司,主要面向大众型企业或政府机关,并提供付费的有偿服务 5)Amap和MapABC,数据和服务都是共享的,所以Mapabc用Amap的API是正常的 | 搜狗地图 | 境内:搜狗坐标系 a、在GCJ-02坐标系基础上再次加密 b、支持WGS-84、GCJ-02、BD09转换成搜狗坐标,反向不支持 |
google地图 | 1)境内:GCJ-02 a、数据来源于高德,两者互通 2)境外:WGS-84 | 图吧地图(MapBar) | 境内:图吧坐标系 a、在GCJ-02坐标系基础上再次加密 |
天地图 | 全球统一:CGCS2000 | 阿里云地图 | 境内:GCJ-02 |
腾讯地图 | 境内:GCJ02 | 灵图地图(51ditu) | 境内:GCJ-02 |
3、常用地图服务
OGC | OGC 全称是开放地理空间信息联盟(Open Geospatial Consortium),是一个非盈利的国际标准组织,它制定了数据和服务的一系列标准,GIS厂商按照这个标准进行开发可保证空间数据的互操作,致力于提供地理信息行业软件和数据及服务的标准化工作。 |
WMS | WMS服务:Web Map Service,网络地图服务,它是利用具有地理空间位置信息的数据制作地图,其中将地图定义为地理数据的可视化表现,能够根据用户的请求,返回相应的地图,包括PNG、GIF、JPEG等栅格形式,或者SVG或者WEB CGM等矢量形式。WMS支持HTTP协议,所支持的操作是由URL决定的。 GetCapabitities:返回服务级元数据,它是对服务信息内容和要求参数的一种描述。 |
WMS-C | WMS-C全称是Web Mapping Service - Cached,对它完整的定义来源于OSGeo Wiki,2006年在FOSS4G会议上提出讨论,目的在于提供一种预先缓存数据的方法,以提升地图请求的速度,自始至终该标准都没有写入OGC之中。WMS-C通过bbox和resolutions去决定请求的地图层级,为了更加直观的请求地图瓦片,一些软件做了一些改进,例如WorldWind在请求中使用level/x/y三个参数,直观明了。典型的基于WMS-C的实现是TileCache,另外一个关于WMSC的参考:http://wiki.osgeo.org/wiki /WMS_Tiling_Client_Recommendation |
TMS | (tile map Servcie)切片地图服务(TMS)定义了一些操作,这些操作允许用户按需访问切片地图,访问速度更快,还支持修改坐标系。WMTS可能是OGC首个支持RESTful访问的服务标准. |
WMTS | (OpenGIS Web Map Title Service)WMTS提供了一种采用预定义图块方法发布数字地图服务的标准化解决方案。WMTS弥补了WMS不能提供分块地图的不足。WMS针对提供可定制地图的服务,是一个动态数据或用户定制地图(需结合SLD标准)的理想解决办法。WMTS牺牲了提供定制地图的灵活性,代之以通过提供静态数据(基础地图)来增强伸缩性,这些静态数据的范围框和比例尺被限定在各个图块内。这些固定的图块集使得对WMTS服务的实现可以使用一个仅简单返回已有文件的Web服务器即可,同时使得可以利用一些标准的诸如分布式缓存的网络机制实现伸缩性 WMTS接口支持的三类资源: 一个服务元数据(ServiceMetadata)资源(面向过程架构风格下对GetCapabilities操作的响应)(服务器方必须实现)。 ServiceMetadata资源描述指定服务器实现的能力和包含的信息。在面向过程的架构风格中该操作也支持客户端与服务器间的标准版本协商。 |
WFS | 网络要素服务(WFS)支持用户在分布式的环境下通过HTTP对地理要素进行插入,更新,删除,检索和发现服务。该服务根据HTTP客户请求返回要素级的GML(Geography Markup Language、地理标识语言)数据,并提供对要素的增加、修改、删除等事务操作,是对Web地图服务的进一步深入。WFS通过OGC Filter构造查询条件,支持基于空间几何关系的查询,基于属性域的查询,当然还包括基于空间关系和属性域的共同查询。 WFS提供如下操作: GetCapabitities:返回服务级元数据,它是对服务信息内容和要求参数的一种描述。 |
WCS | 网络覆盖服务是面向空间影像数据,它将包含地理位置的地理空间数据作为"覆盖(Coverage)"在网上相互交换,如卫星影像、数字高程数据等栅格数据。 WCS提供如下操作: GetCapabitities:返回服务级元数据,它是对服务信息内容和要求参数的一种描述。 |
WPS | Web Processing Server(WPS)是新近推出的标准,它的功能其实我们已经耳熟能详了。Processing即ArcView中的GeoProcessing,诸如Union,Intersect等方法。WPS要做的就是暴露基于URL接口来实现客户端通过WebService对此类方法的调用、并返回数据。 |
4、地图开发常用工具
工具 | 特性 | 功能 | 学习资料 |
postGIS | postgreSQL关系型数据库的扩展,空间数据库,可用于空间数据和对象关系型数据的相互转换,提供如下功能:
空间数据类型用例如点(point)、线(line)和面(polygon) 多维度空间索引:用于进行空间操作的高效处理,判断图形在哪个边界框内(边界框是平行于坐标轴且包含给定地理要素的最小的矩形) 空间函数:构建于SQL语言中,用于空间属性和空间关系的查询(转换、管理、检索、比较、生成) | 空间数据.shp文件转换成关系型数据文件 |
|
geoserver | GeoServer是openGIS Web服务器规范的J2EE实现(通俗的说就是基于java的软件服务器),利用GeoServer可以方便的发布地图数据, 允许用户对数据进行更新、删除、插入操作,通过GeoServer可以比较容易的在用户之间迅速共享地理信息。 兼容 WMS 和 WFS 特性;支持 PostgreSQL、 Shapefile 、 ArcSDE 、 Oracle 、 VPF 、 MySQL 、 MapInfo ;支持上百种投影; 能够将网络地图输出为 jpeg 、 gif 、 png 、 SVG 、 KML 等格式;能够运行在任何基于 J2EE/Servlet 容器之上; 嵌入 MapBuilder 支持 AJAX 的地图客户端OpenLayers;除此之外还包括许多其他的特性。 | 将地理空间数据发布成可视化瓦片服务 | https://enterprise.arcgis.com/zh-cn/server/latest/publish-services/linux/wms-services.htm
|
ArcGis | 美国环境系统研究所公司(ESRI)提供的地理解决方案;
我们使用的ArcGis局限于ArcMap软件
用于创建各种不同形式的地图,包括可以使用浏览器和移动设备访问的 web 地图、
大幅面印刷地图、报告和演示文稿中包括的地图、地图册、地图集、嵌入应用程序的地图,等等。
并且该地图可以显示信息,支持使用该信息支持查询、分析、规划和管理,
地图既是GIS 工作的最终产品,也是工作中使用的工具。
ArcCatalog可用于空间数据库内容的管理、数据库设计及元数据的记录与浏览;
ArcMap可用于地图编制、编辑和分析;
ArcToolbox可用于数据转换和地理处理(geoprocessing)。
结合以上工具可以完成制图、数据管理、空间分析、数据编辑和地理处理(geoprocessing)在内的从简到繁的各种GIS任务。 | · 编译地理信息
| https://learn.arcgis.com/zh-cn/arcgis-book/ http://resources.arcgis.com/zh-cn/help/getting-started/articles/026n00000014000000.htm https://www.esri.com/zh-cn/home
|
二、地图开发流程

三、地图开发导图
四、总结
地图开发过程中,相关数据和服务始终遵循以上规范,服务辅助发布数据,开发流程基本一致,剩下的,就是根据项目需求添加功能啦!