Geojson笔记一:深度入门

简介

Geojson是一个很主要的数额格式,结构清晰,表明简洁。

与ESHighlanderI的shapefile相比越发精致简单,但是表现的数码内容却是一样的,小编认为GeoJson大有代表shapefile的可行性。与还不是很成熟的topojson相比较,geojson已经非凡很多前端后段的工具,有不少剧本插件。如下:

协会表达

点的数量格式

{
  "type": "Feature",
  "geometry": {
    "type": "Point",
    "coordinates": [125.6, 10.1]
  },
  "properties": {
    "name": "Dinagat Islands"
  }
}

type指的是数据类型,它是一个feature。它含有几何要素属性几何要素富含要素的体系和坐标。属性可以涵盖各类数据类型。

线的多少格式

 {
  "type": "LineString",
  "coordinates": [ [100.0, 0.0], [101.0, 1.0] ]
}

线状数据由七个以上的点组合而成,在坐标的外围多包上一层中括号,表示json中的数组。

面的数据格式

 {
   "type": "Polygon",
    "coordinates": [
      [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0], [100.0, 1.0], [100.0, 0.0] ],
      [ [100.2, 0.2], [100.8, 0.2], [100.8, 0.8], [100.2, 0.8], [100.2, 0.2] ]
      ]
 }

出于面状数据可以为镂空多边形,可以支撑一个之上的多边形,所以在线状数据的基础上多加一层中括号。

要素构成的数码格式

 { "type": "FeatureCollection",
    "features": [
      { "type": "Feature",
        "geometry": {"type": "Point", "coordinates": [102.0, 0.5]},
        "properties": {"prop0": "value0"}
        },
      { "type": "Feature",
        "geometry": {
          "type": "LineString",
          "coordinates": [
            [102.0, 0.0], [103.0, 1.0], [104.0, 0.0], [105.0, 1.0]
            ]
          },
        "properties": {
          "prop0": "value0",
          "prop1": 0.0
          }
        },
      { "type": "Feature",
         "geometry": {
           "type": "Polygon",
           "coordinates": [
             [ [100.0, 0.0], [101.0, 0.0], [101.0, 1.0],
               [100.0, 1.0], [100.0, 0.0] ]
             ]
         },
         "properties": {
           "prop0": "value0",
           "prop1": {"this": "that"}
           }
         }
       ]
     }

区其余多少类型间可以包成一个FeatureCollection,最外层有个type来表示项目,而features本着各样feature数组。有人肯定会思疑shp中有proj的习性,geojson中可以用crsbbox来表示投影参数和边界限制,详情参见

案例

那边享用一个小案例。

网友问作者,获取大量线段的源点和终端。

自个儿的率先反响就是并不是用arcpy等api,那格局也使得,可是并不是最精简的形式。作者的化解措施是最直接的:

  • 通过qgis将shapefile文件转换成geojson
  • 用python内置库json去分析获取数据

那样相对来说,纵然多了一个数目转换的长河,但是结合本章内容,geojson是文件,结构不难,方便解析。数据足以很简单拿到且替换。这么些小实验作为课余作业。json的剖析大概是10行代码左右,熟识python的能人或然5行代码就化解,比arcpy大大节省代码。

相关文章

网站地图xml地图