天天看点

必备GIS知识总结

必备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决定的。

WMS提供如下操作:

GetCapabitities:返回服务级元数据,它是对服务信息内容和要求参数的一种描述。

GetMap:返回一个地图影像,其地理空间参考和大小参数是明确定义了的。

GetFeatureInfo:返回显示在地图上的某些特殊要素的信息。

GetLegendGraphic:返回地图的图例信息。

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资源描述指定服务器实现的能力和包含的信息。在面向过程的架构风格中该操作也支持客户端与服务器间的标准版本协商。

        图块资源(对面向过程架构风格下GetTile操作的响应)(服务器方必须实现)。图块资源表示一个图层的地图表达结果的一小块。

        要素信息(FeatureInfo)资源(对面向过程架构风格下GetFeatureInfo操作的响应)(服务器方可选择实现)。该资源提供了图块地图中某一特定像素位置处地物要素的信息,与WMS中GetFeatureInfo操作的行为相似,以文本形式通过提供比如专题属性名称及其取值的方式返回相关信息

WFS

网络要素服务(WFS)支持用户在分布式的环境下通过HTTP对地理要素进行插入,更新,删除,检索和发现服务。该服务根据HTTP客户请求返回要素级的GML(Geography Markup Language、地理标识语言)数据,并提供对要素的增加、修改、删除等事务操作,是对Web地图服务的进一步深入。WFS通过OGC Filter构造查询条件,支持基于空间几何关系的查询,基于属性域的查询,当然还包括基于空间关系和属性域的共同查询。

WFS提供如下操作:

GetCapabitities:返回服务级元数据,它是对服务信息内容和要求参数的一种描述。

DescribeFeatureType:生成一个Schema用于描述WFS实现所能提供服务的要素类型。Schema描述定义了在输入时WFS实现如何对要素实例进行编码以及输出时如何生成一个要素实例。

GetFeature:可根据查询要求返回一个符合GML规范的数据文档。

LockFeature:用户通过Transaction请求时,为了保证要素信息的一致性,即当一个事务访问一个数据项时,其他的事务不能修改这个数据项,对要素数据加要素锁。

Transaction: 与要素实例的交互操作。该操作不仅能提供要素读取,同时支持要素在线编辑和事务处理。Transaction操作是可选的,服务器根据数据性质选择是否支持该操作。

WCS

网络覆盖服务是面向空间影像数据,它将包含地理位置的地理空间数据作为"覆盖(Coverage)"在网上相互交换,如卫星影像、数字高程数据等栅格数据。

WCS提供如下操作:

GetCapabitities:返回服务级元数据,它是对服务信息内容和要求参数的一种描述。

DescribeCoverage:支持用户从特定WCS服务器获取一个或多个覆盖的详细的描述文档。

GetCoverage:可根据查询要求返回一个包含或者引用被请求的覆盖数据的响应文档。

WPS Web Processing Server(WPS)是新近推出的标准,它的功能其实我们已经耳熟能详了。Processing即ArcView中的GeoProcessing,诸如Union,Intersect等方法。WPS要做的就是暴露基于URL接口来实现客户端通过WebService对此类方法的调用、并返回数据。
4、地图开发常用工具
工具 特性 功能 学习资料
postGIS

postgreSQL关系型数据库的扩展,空间数据库,可用于空间数据和对象关系型数据的相互转换,提供如下功能:

空间数据类型用例如点(point)、线(line)和面(polygon)

多维度空间索引:用于进行空间操作的高效处理,判断图形在哪个边界框内(边界框是平行于坐标轴且包含给定地理要素的最小的矩形)

空间函数:构建于SQL语言中,用于空间属性和空间关系的查询(转换、管理、检索、比较、生成)

空间数据.shp文件转换成关系型数据文件

http://www.postgis.org/

postgis路网数据导出及常见问题

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;除此之外还包括许多其他的特性。

将地理空间数据发布成可视化瓦片服务

http://geoserver.org/

https://enterprise.arcgis.com/zh-cn/server/latest/publish-services/linux/wms-services.htm

geoserver图层配置指南

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

二、地图开发流程

![地图开发流程](https://img-blog.csdnimg.cn/413c99a97b6c4fa28e65eefc6d3c2219.jpeg)

三、地图开发导图

必备GIS知识总结

四、总结

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

继续阅读