zoukankan      html  css  js  c++  java
  • WKT与GeoJson

    基本概念

    1.WKT(Well-known text)是开放地理空间联盟OGC(Open GIS Consortium )制定的一种文本标记语言,用于表示矢量几何对象、空间参照系统及空间参照系统之间的转换。

    2.GeoJSON 一种JSON格式的Feature信息输出格式,它便于被JavaScript等脚本语言处理,OpenLayers等地理库便是采用GeoJSON格式。

    注:WKT是OGC的标准,而GeoJson并不是OGC的标准。

    二者的区别

    1.wkt是单独用来表示空间点线面数据的,不能用于附带属性数据;

    2.geojson还可以用来表示空间数据和属性数据的集合,还可以包含图层信息;

    可表示的内容

    WKT与geojson可以表示的几何对象是一致的,包括点、线、面、几何集合四种:

    1.Point, MultiPoint

    2.LineString, MultiLineString

    3.Polygon, MultiPolygon

    4.GeometryCollection

    内容示例

    Type   WKT GeoJson
    Point POINT (30 10) { "type": "Point", "coordinates": [30, 10] }
    MultiPoint MULTIPOINT ((10 40), (40 30), (20 20), (30 10)) { "type": "MultiPoint", "coordinates": [ [10, 40], [40, 30], [20, 20], [30, 10] ] }
    MULTIPOINT (10 40, 40 30, 20 20, 30 10)
    LineString LINESTRING (30 10, 10 30, 40 40) { "type": "LineString", "coordinates": [ [30, 10], [10, 30], [40, 40] ] }
    MultiLineString MULTILINESTRING ((10 10, 20 20, 10 40),
    (40 40, 30 30, 40 20, 30 10))
    { "type": "MultiLineString", "coordinates": [ [[10, 10], [20, 20], [10, 40]], [[40, 40], [30, 30], [40, 20], [30, 10]] ] }
    Polygon POLYGON ((30 10, 40 40, 20 40, 10 20, 30 10)) { "type": "Polygon", "coordinates": [ [[30, 10], [40, 40], [20, 40], [10, 20], [30, 10]] ] }
    POLYGON ((35 10, 45 45, 15 40, 10 20, 35 10),
    (20 30, 35 35, 30 20, 20 30))
    { "type": "Polygon", "coordinates": [ [[35, 10], [45, 45], [15, 40], [10, 20], [35, 10]], [[20, 30], [35, 35], [30, 20], [20, 30]] ] }
    MultiPolygon MULTIPOLYGON (((30 20, 45 40, 10 40, 30 20)),
    ((15 5, 40 10, 10 20, 5 10, 15 5)))

    { "type": "MultiPolygon", "coordinates": [ [ [[30, 20], [45, 40], [10, 40], [30, 20]] ], [ [[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]] ] ] }

    MULTIPOLYGON (((40 40, 20 45, 45 30, 40 40)),
    ((20 35, 10 30, 10 10, 30 5, 45 20, 20 35),
    (30 20, 20 15, 20 25, 30 20)))

    { "type": "MultiPolygon", "coordinates": [ [ [[40, 40], [20, 45], [45, 30], [40, 40]] ], [ [[20, 35], [10, 30], [10, 10], [30, 5], [45, 20], [20, 35]], [[30, 20], [20, 15], [20, 25], [30, 20]] ] ] }

    GeometryCollection

    (1)可以由多种Geometry组成,如:GEOMETRYCOLLECTION(POINT(4 6),LINESTRING(4 6,7 10)),每一种按照上面的格式来构成;

    (2)也可以是同一种Geometry的组合,如:geometrycollection(point(116.405285 39.904989),point(117.190182 39.125596),point(114.502461 38.045474),point(112.549248 37.857014));

    在读取时,可以直接由GeoTools的WKTReader读取

    数据读取和转换

    一般在地图的客户端支持按照GeoJSON的形式进行图层加载,在后端的数据库处理中,一般是支持WKT/WKB格式的坐标返回,所以,需要在中间有一个转换过程,当然在新版的PostGIS中,可以直接返回GeoJSON数据。

    A.前端

    mapbox 开放js类库,也可以将两者的坐标形式进行转换。

    github地址:https://github.com/mapbox/wellknown

    B.后端

    在后端的话,可以直接使用GeoTools工具进行读取。

    注:本文转载自【原文链接:https://blog.csdn.net/xcymorningsun/article/details/89848096】

  • 相关阅读:
    第七周作业
    人月神话之没有银弹
    第六周作业
    第五周作业
    第四周作业
    第三周作业
    人月神话之沟通
    第二周作业
    第一周作业
    第八周作业
  • 原文地址:https://www.cnblogs.com/qingtian-jlj/p/12988219.html
Copyright © 2011-2022 走看看