概述
本文主要用来整理GIS开发中和Geometry相关的知识,写的比较简单,大佬们亲喷。
基础概念
WKT
维基百科:传送门
WKT(Well-known text)是一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。
WKT可以表示的几何对象包括:点
,线
,多边形
,TIN(不规则三角网)及多面体
。可以通过几何集合的方式来表示不同维度的几何对象。
WKB
WKT的二进制表示方式,亦即WKB(well-known binary)则胜于在传输和在数据库中存储相同的信息。该格式由开放地理空间联盟(OGC)制定。本文不做具体的赘述,详细内容请看上面的维基百科。
ArcGIS Geometry json
官方介绍:传送门
本文仅示例如下几种格式,具体使用请参考官方帮助。
-
Point
{"x" : <x>, "y" : <y>, "z" : <z>, "m" : <m>, "spatialReference" : {<spatialReference>}}
-
MultiPoint
{ "hasM" : true | false, "hasZ" : true | false, "points" : [[ <x1>, <y1>, <z1>, <m1> ] , [ <x2>, <y2>, <z2>, <m2> ], ... ], "spatialReference" : {<spatialReference>} }
-
Polyline
{ "hasZ" : true | false, "hasM" : true | false, "paths" : [[[<x11>, <y11>, <z11>, <m11>],...,[<x1N>, <y1N>, <z1N>, <m1N>]], ,...,[[<xk1>, <yk1>, <zk1>, <mk1>],...,[<xkM>, <ykM>, <zkM>, <mkM>]]], "spatialReference" : {<spatialReference>} }
-
Polygon
{ "hasZ" : true | false, "hasM" : true | false, "rings" : [[[<x11>, <y11>, <z11>, <m11>],...,[<x1N>, <y1N>, <z1N>, <m1N>]], ,...,[[<xk1>, <yk1>, <zk1>, <mk1>],...,[<xkM>, <ykM>, <zkM>, <mkM>]]], "spatialReference" : {<spatialReference>} }
-
Envelope
{ "xmin" : <xmin>, "ymin" : <ymin>, "xmax" : <xmax>, "ymax" : <ymax>, "zmin" : <zmin>, "zmax" : <zmax>, "mmin" : <mmin>, "mmax" : <mmax>, "spatialReference" : {<spatialReference>} }
GeoJson
GeoJson官方说明:传送门
GeoJson规范中文说明:传送门
TopoJson
TopoJson规范:传送门
PostGIS Geometry
官方介绍:传送门
操作Geometry对象的函数,官方资料:
转换
以下列的是JavaScript/Node.js中转换过程用到的几个库: