WKT、WKB、ArcGIS Geometry Object、GeoJson、PostGIS Geometry

概述

本文主要用来整理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中转换过程用到的几个库:

  • 使用terraformer库转换,传送门
    • 支持geojson、wkt、ArcGIS Geometry 之间的转换
  • 使用wkx库,传送门
    • WKT/WKB/EWKT/EWKB/TWKB/GeoJSON 的解析和序列化
  • 使用wellknown库,传送门
    • 支持wkt 和geojson的转换
发布了96 篇原创文章 · 获赞 95 · 访问量 39万+

猜你喜欢

转载自blog.csdn.net/yh0503/article/details/95048757