GeoJSON详解

GeoJSON详解

     GeoJSON是一种常用的对各种地理数据结构进行编码的格式,是JSON的特殊子集。区别于JSON更加灵活的结构,GeoJSON有固定的结构,必须包含特定的字段,如"type"来指定GeoJSON类型(Point、LineString、Polygon等9种类型)。

     GeoJSON默认为WGS-84地理坐标系,内部不可以修改。

 1. GeoJSON对象构成

     (必选)"type":确定GeoJSON类型,Point”、“MultiPoint”、“LineString”、“MultiLineString”、“ Polygon”、“MultiPolygon” 、 “GeometryCollection”、 “Feature”、“FeatureCollection共9种。

     (可选)"bbox":表示数据的空间范围,通常为4个或6个数值的数组,分别表示最小和最大经纬度(以及可选的高度)坐标。用于在不需要解析整个GeoJSON的情况下加速对数据加载、查询的速度。例:[100.0, 0.0, 105.0, 1.0]、[100.0, 0.0, -100.0, 105.0, 1.0, 0.0]。

     (... ...)

2.Feature、 FeatureCollection与Geometry(区别与联系)

      当"type"为FeatureCollection时,GeoJSON表示要素对象集合(FeatureCollection);当"type"为Feature时,GeoJSON表示要素对象(Feature);当"type"为Point等其余7种类型时,GeoJSON表示几何对象(Geometry)。

      联系:三种对象是包含关系,FeatureCollection可以看作Feature的集合,相当于向外包了一层存储多个Feature,而Geometry构成了Feature。

      具体来说,FeatureCollection的成员“features”值为含有1个或多个Feature对象的数组,Feature的成员“geometry”值为Geometry对象。

      Feature与FeatureCollection都可用于地理数据的传输与交换,而Geometry常作为Feature的内部成员值。

      区别:以上"type"、"bbox"等成员是所有GeoJSON的基本成员,不同类型的GeoJSON还有不同的其它成员。

要素对象集合(FeatureCollection):特有一个“features”成员,存储1个或多个要素对象。

要素对象(Feature):特有“geomtry”和“properties”成员,分别存储几何形状位置和属性。

几何对象(Geometry):类型为“GeometryCollection”(不常用)时,特有“geometries”,存储其余6种基本类型的集合。其余6种类型特有“coordinates”,存储坐标。如下所示:

{
  "type": "GeometryCollection",
  "geometries": [
    {
      "type": "Point",
      "coordinates": [100.0, 0.0]
    },
    {
      "type": "LineString",
      "coordinates": [
        [101.0, 0.0],
        [102.0, 1.0]
      ]
    }
  ]
}

3.六种基本类型的坐标表示

Point:一个位置:[102.0, 0.5]。

MultiPoint:多个位置的数组:[ [102.0, 0.5], [103.0, 1.0] ] 。

LineString:两个或多个位置的数组:[ [102.0, 0.5], [103.0, 1.0] ]

MultiLineString:多LineString的数组:[LineString, LineString ]

Polygon:闭合LineString线性环的数组,首尾坐标相同即为闭合,[ [ [102.0, 0.5], [103.0, 1.0], [104.0, 0.5], [102.0, 0.5] ] ],线性环有方向,第一个环为最外环,逆时针方向,后面的环默认是孔,顺时针方向。

MultiPolygon:多Polygon的数组:[Polygon, Polygon ]

4.总结

       GeoJSON有多种类型,6种基本类型作为地理数据的基本单元,仅包含空间位置数据;“GeometryCollection”是基本类型的集合;“Feature”是加入了属性的地理数据,包含空间位置数据和属性信息。“FeatureCollection”是“Feature”的集合。

5.参考

RFC 7946 - GeoJSON 格式

GeoJson规范(RFC 7946)全文翻译 - 知乎

geojson.io | powered by Mapbox

转载请说明出处内容投诉
CSS教程网 » GeoJSON详解

发表评论

欢迎 访客 发表评论

一个令你着迷的主题!

查看演示 官网购买