首页 > 其他分享 >WebGIS|GeoJSON简介

WebGIS|GeoJSON简介

时间:2022-12-04 18:22:58浏览次数:63  
标签:Point 对象 简介 WebGIS coordinates GeoJSON 数组 type

简介

GeoJSON 是用 JSON 的语法表达和存储地理数据,可以说是 JSON 的子集。
图片数据参考:http://geojson.io

GeoJSON对象

  1. GeoJSON总是由一个单独的对象组成。
  2. GeoJSON对象可能有任何数目成员(名/值对)。
  3. GeoJSON对象必须由一个名字为"type"的成员。这个成员的值是由GeoJSON对象的类型所确定的字符串。
  4. type成员的值必须是下面之一:"Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon", "GeometryCollection", "Feature", 或者 "FeatureCollection"。

几何对象

当type的值是:"Point", "MultiPoint", "LineString", "MultiLineString", "Polygon", "MultiPolygon", 或者"GeometryCollection"时,GeoJSON就是几何对象。除"GeometryCollection"之外,其他几何对象都要有"coordinates"属性,它的值是一个数组,表示坐标集合。

位置(coordinates)

  1. 点(type: "Point"):“coordinates"的值必须是一个单独的位置。
  2. 多点(type: "MultiPoint"): “coordinates"的值必须是一个位置数组。
  3. 线(type: "LineString"): “coordinates"的值必须是两个或者多个位置的数组。
  4. 多线(type: "MultiLineString"): “coordinates"的值必须是线坐标数组的数组。
  5. 面(type: "Polygon"): “coordinates"的值必须是线性环坐标数组的数组。
  6. 多面(type: "MultiPlygon"): “coordinates"的值必须是面坐标数组的数组。
  7. 几何集合(type: "GeometryCollection"):类型为"GeometryCollection"的GeoJSON对象是一个集合对象,它表示几何对象的集合。几何集合必须有一个名字为"geometries"的成员。与"geometries"相对应的值是一个数组。这个数组中的每个元素都是一个GeoJSON几何对象。

特征对象(type:"Feature")

  1. 特征对象必须有一个名字为"geometry"的成员,这个几何成员的值是上面定义的几何对象或者JSON的null值。
  2. 特征对戏那个必须有一个名字为“properties"的成员,这个属性成员的值是一个对象(任何JSON对象或者JSON的null值)。
  3. 如果特征是常用的标识符,那么这个标识符应当包含名字为“id”的特征对象成员。

特征集合对象(type:"FeatureCollection")

类型为"FeatureCollection"的对象必须由一个名字为"features"的成员。与“features"相对应的值是一个数组。这个数组中的每个元素都是上面定义的特征对象。

示例

下面是一个点数据。

{
  "type": "FeatureCollection",
  "features": [
    {
      "type": "Feature",
      "properties": {},
      "geometry": {
        "type": "Point",
        "coordinates": [114.34853553771973,30.48129922513529]
      }
    }
  ]
}

img

几何要素

地理要素分为Point(点)、MultiPoint(多点)、LineString(线)、MultiLineString(多线)、Polygon(面)、MultiPolygon(多面)、GeometryCollection(几何集合)。

这些地理要素被规划到geometry特征的type属性下,并且不同的type会有不同的coordinates值。

"geometry": {
        "type": "Point",
        "coordinates": [114.34853553771973,30.48129922513529]
}

Point(点)

点要素是最简单的,类型type对应Point,然后坐标是一个1维的数组,里面有两个元素(如果是立体的坐标就是三维x,y,z),分别为经度和纬度。

coordinates的值是一个点。

"geometry":{
        "type":"Point",
        "coordinates":[114.34853553771973,30.48129922513529]
}

MultiPoint(多点)

多点,坐标数目变多。

coordinates的值是多个点。

"geometry":{
        "type":"MultiPoint",
        "coordinates":[
        [114.35980046127969,30.475784276668875],
	[114.35974608393923,30.474073697808265]               
        ]
}

image-20221204163537264

LineString(线)

线要素就是指线段,记录的是线的端点坐标,可视化时会按照记录顺序联结。
对于曲线(如贝塞尔曲线)目前还没有很好的表达,但是在地理数据中,曲线一般会用LineString去拟合,现实地理世界中也没有标准的曲线地理要素。

线要素的坐标coordinates里的二维数组和多点要素基本一样,区别就在type上了。

coordinates的值是多个点,类似MultiPoint(多点)。

"geometry":{
        "type":"LineString",
        "coordinates":[[
            114.3529924135459,
            30.478572845744893
          ],
          [
            114.35481302363945,
            30.47748133618272
          ],
          [
            114.35568375020608,
            30.476662695980167
          ],
          [
            114.35766267422133,
            30.475502943909135
          ]]
} // 依次连接点 

image-20221204170948097

MultiLineString(多线)

好似一个三维数组,一条线连完,连下一条线。

"geometry":{
        "type":"MultiLineString",
        "coordinates":
        [
            [
                [
                    114.3529924135459,
                    30.478572845744893
                ],
                [
                    114.35481302363945,
                    30.47748133618272
                ],
                [
                    114.35568375020608,
                    30.476662695980167
                ],
                [
                    114.35766267422133,
                    30.475502943909135
                ]
            ], //一条线,注意开始点和结束点不一样。
            [
                [
                    114.35320435038312,
                    30.47471607166429
                ],
                [
                    114.35460111088736,
                    30.47524631647086
                ],
                [
                    114.35558216885983,
                    30.476091835997835
                ],
                [
                    114.35751102860343,
                    30.477180968974636
                ]
            ] //第二条线
        ]
}
image-20221204172054237

Polygon(面)

一个无孔单面。

"geometry":{ 
        "type": "Polygon",
        "coordinates": [
            [
                [114.35571287414865,30.47481892185671],
                [114.35571287414865,30.4737127088717],
                [114.35864427416618,30.4737127088717],
                [114.35864427416618,30.47481892185671],
                [114.35571287414865,30.47481892185671]
            ]
        ] // 注意里面多了一层括号,区别于线
}

image-20221204174834677

MultiPolygon(多面)

两个相交的面。

"geometry": {
        "type": "MultiPolygon",
        "coordinates":
                [ 
                    [
                        [
                            [114.35571287414865,30.47481892185671],
                            [114.35571287414865,30.4737127088717],
                            [114.35864427416618,30.4737127088717],
                            [114.35864427416618,30.47481892185671],
                            [114.35571287414865,30.47481892185671]
                        ] // 这层括号可能就是为了突出此为面,首尾点相同
                    ], // 注意里面多了一层括号,区别于线
                    [
                        [
                            [114.35651014589808,30.47460511218374],
                            [114.35651014589808,30.474017156423642],
                            [114.357878246913,30.474017156423642],
                            [114.357878246913,30.47460511218374],
                            [114.35651014589808,30.47460511218374]
                        ] 
                    ] // 注意里面多了一层括号,区别于线
                ]
}

image-20221204180307274

GeometryCollection(几何集合)

GeometryCollection是多种基本地理要素的集合,就是里面可以包含点、线、面要素。
这个是个特殊的要素,不需要放在FeatureCollection里。

{
    "type": "GeometryCollection",
    "geometries": [
         {
            "type": "Point",
            "coordinates": [114.35771652302878,
          30.473617278566252]
         }, 
        {
            "type": "LineString",
            "coordinates": [
                [114.35760115753658,30.473493873521008],
                [114.35779916509125,30.473522316109594],
                [114.35808627604439,30.473582045517958],
                [114.35836678674559,30.47355644720433],
                [114.35852849291592,30.473616176592472]
            ]
         }
    ]
}

image-20221204180555983

标签:Point,对象,简介,WebGIS,coordinates,GeoJSON,数组,type
From: https://www.cnblogs.com/tangjielin/p/16950331.html

相关文章

  • web APIs-day01-简介js学习
       ......
  • 2022年12月最新出炉的实时区县乡镇街道geojson数据Echarts地图数据乡村联动数据下载
    发现个可以免费下载全国geojson数据的网站,推荐一下。支持全国、省级、市级、区/县级、街道/乡镇级以及乡村六级的联动数据geojson数据下载地址:https://geojson.hxkj.vi......
  • USB总线-USB协议简介(一)
    1.简介USB是通用串行总线(UniversalSerialBus)的缩写。在USB总线出现之前,计算机与键盘、鼠标、扫描仪、打印机都使用专用的接口连接,不同设备的接口不能互用,扩展性很差,每次......
  • Android-操作系统简介01
    01.系统简介1.1Android名词Android一词的本义指“机器人”,同时也是Google于2007年11月5日宣布的基于Linux平台的开源手机操作系统的名称,该平台由操作系统、中间件......
  • 【CV项目实现】交通标志数据集TT100K简介
    前言论文是​​清华-腾讯联合实验室​​提出的,公开了Tsinghua‐Tencent100K数据集,创建了一个大型交通标志基准。该数据集提供了100000张分辨率为2048像素×2048像素、包含......
  • Tekton 设计简介 及 实践
    本文是我对Tekton的实现原理和背后技术逻辑的理解,以及在实践过程中的一些总结。简介Tekton是一个基于Kubernetes的云原生CI/CD开源(https://cd.foundation/)框架,基于......
  • 1.2 Hadoop简介-hadoop-最全最完整的保姆级的java大数据学习资料
    目录1.2Hadoop简介1.2.1什么是Hadoop1.2.2Hadoop的起源1.2.3Hadoop的特点1.2.4Hadoop的发行版本1.2.5ApacheHadoop版本更迭1.2.6第六节Hadoop的优缺点1.2Hadoop......
  • [Redis] (一) 简介
    Redis是什么REmoteDIctionaryServer(Redis)是一个由SalvatoreSanfilippo写的key-value存储系统,是跨平台的非关系型数据库。Redis是一个开源的使用ANSIC语言......
  • Hexo系列(一):Hexo简介
    作者:独笔孤行官网:​​ ​http://anyamaze.com​​公众号:云实战前言博客网站的实现方法有很多种,常用的博客框架主要有wordpress、Z-Blog、hexo、Typecho、Halo等。Word......
  • Hexo系列(一):Hexo简介
    作者:独笔孤行官网:​​ ​​http://anyamaze.com​​公众号:云实战前言博客网站的实现方法有很多种,常用的博客框架主要有wordpress、Z-Blog、hexo、Typecho、Halo等。Wordpr......