文档库

最新最全的文档下载
当前位置:文档库 > GeoJson报告

GeoJson报告

GeoJSON介绍

一、GeoJson和Json的区别和联系?

GeoJson报告

GeoJSON 是一种对地理数据结构进行编码的格式。它只是一个采用上述 JSON 格式的用于描述地理信息的格式。它的语法和 JSON 是一样的,只是对各名称做了规范。

二、简介

GeoJson报告

GeoJSON是一种对各种地理数据结构进行编码的格式。GeoJSON对象可以表示几何、特征或者特征集合。GeoJSON支持下面几何类型:点、线、面、多点、多线、多面和几何集合。GeoJSON里的特征包含一个几何对象和其他属性,特征集合表示一系列特征。

2.1.GeoJSON对象

GeoJSON总是由一个单独的对象组成。这个对象(指的是下面的GeoJSON对象)表示几何、特征或者特征集合。

?GeoJSON对象可能有任何数目成员(名/值对)。

?GeoJSON对象必须由一个名字为"type"的成员。这个成员的值是由GeoJSON对象的类型所确定的字符串。

type成员的值必须是下面之一:"Point", "MultiPoint",

"LineString", "MultiLineString",

"Polygon", "MultiPolygon", "GeometryCollection ", "Feature", 或者 "FeatureCollection"。

2.1.1几何对象

{"type": "Point",

"coordinates": [30, 10]

}

{"type": "LineString",

"coordinates": [[30, 10], [10, 30], [40, 40] ]

}

{"type": "Polygon",

"coordinates": [[[30, 10], [40, 40], [20, 40], [10, 20],

[30, 10]]]

}

{"type": "Polygon",

"coordinates": [[[35, 10], [45, 45], [15, 40], [10, 20],

[35, 10]],

[[20, 30], [35, 35], [30, 20], [20, 30]]]

}

Multipart geometries

{"type": "MultiPoint",

"coordinates": [[10, 40], [40, 30], [20, 20], [30, 10]]

}

{"type": "MultiLineString",

"coordinates": [[[10, 10], [20, 20], [10, 40]],

[[40, 40], [30, 30], [40, 20], [30, 10]]

]}

{"type": "MultiPolygon",

"coordinates":

20]]],

[[[15, 5], [40, 10], [10, 20], [5, 10], [15, 5]]]

]}

{"type": "MultiPolygon",

"coordinates":

[40,40]]],

[[[20, 35], [10, 30], [10, 10], [30, 5], [45, 20], [20,

35]],

[[30, 20], [20, 15], [20, 25], [30, 20]]]

]}

GeoJson报告

2.1.2特征对象:

类型为"Feature"的GeoJSON对象是特征对象。

?特征对象必须由一个名字为"geometry"的成员,这个几何成员的值是上面定义的几何对象或者JSON的null值。

?特征对戏那个必须有一个名字为“properties"的成员,这个属性成员的值是一个对象(任何JSON对象或者JSON的null值)。

?如果特征是常用的标识符,那么这个标识符应当包含名字为“id”的特征对象成员。

举例:

{ "type": "Feature",

"geometry": {#"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": {#“properties"的成员

"prop0": "value0",

"prop1": {"this": "that"}

}

}

2.1.3特征集合对象

类型为"FeatureCollection"的GeoJSON对象是特征集合对象。

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

举例:

{ "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"}

}

}

]

}

三、坐标参考系统对象

GeoJson报告

GeoJSON对象的坐标参考系统(CRS)是由它的"crs"成员(指的是下面的CRS对象)来确定的。如果对象没有crs成员,那么它的父对象或者祖父对象的crs成员可能被获取作为它的crs。如果这样还没有获得crs成员,那么默认的CRS将应用到GeoJSON对象。

●默认的CRS是地理坐标参考系统,使用的是WGS84数据,长

度和高度的单位是十进制标示。

●名字为"crs"成员的值必须是JSON对象(指的是下面的CRS

对象)或者JSON的null。如果CRS的值为null,那么就假设

没有CRS了。

●crs成员应当位于(特征集合、特征、几何的顺序的)层级

结构里GeoJSON对象的最顶级,而且在自对象或者孙子对象

里不应该重复或者覆盖。

●非空的CRS对象有两个强制拥有的对象:"type"和

"properties"。

●type成员的值必须是字符串,这个字符串说明了CRS对象的

类型。

●属性成员的值必须是对象。

●CRS应不能更改坐标顺序

3.1. 名字CRS

CRS对象可以通过名字来表明坐标参考系统。在这种情况下,它的"type"成员的值必须是字符串"name"。它的"properties"成员的值必须是包含"name"成员的对象。这个"name"成员的值必须是标识坐标参考系统的字符串。比“urn:ogc:def:crs:OGC:1.3:CRS84"的OGC CRS的URN应当优先于旧的标识符如"EPSG:4326"得到选用:

"crs": {

"type": "name",

"properties": {

"name": "urn:ogc:def:crs:OGC:1.3:CRS84"

}

}

3.2. 连接CRS

CRS对象也可以连接到互联网上的CRS参数。在这种情况下,它的"type"成员的值必须是字符串"link",它的"properties"成员的值必须是一个连接对象(见3.2.1.连接对象)。

? 3.2.1.连接对象

连接对象由一个必需的成员:"href",和一个可选的成员:"type"。必需的"href"成员的值必须是解引用的URI(统一资源标识)。可选的"type"成员的值必须是字符串,而且这个字符串暗示了所提供的URI里用来表示CRS参数的格式

是:"proj4","ogcwkt",esriwkt",不过可以使用其他值:"crs": {

"type": "link",

"properties": {

"href": "http://www.wendangku.net/doc/9c80f0b158fb770bf68a5566.html/crs/42",

"type": "proj4"

}

}

相对连接常常可以作为辅助文件里的CRS的直接处理器:"crs": {

"type": "link",

"properties": {

"href": "data.crs",

"type": "ogcwkt"

}

}

GeoJson报告

四、边界框

为了包含几何、特征或者特征集合的坐标范围信息,GeoJSON 对象可能有一个名字为"bbox的成员。bbox成员的值必须是2*n 数组,这儿n是所包含几何对象的维数,并且所有坐标轴的最低值后面跟着最高者值。bbox的坐标轴的顺序遵循几何坐标轴的顺序。除此之外,bbox的坐标参考系统假设匹配它所在GeoJSON对象的坐标参考系统。

特征对象上的bbox成员的例子:

{ "type": "Feature",

"bbox": [-180.0, -90.0, 180.0, 90.0],

"geometry": {

"type": "Polygon",

"coordinates": [[

[-180.0, 10.0], [20.0, 90.0], [180.0, -5.0], [-30.0, -90.0]

]]

}

...

}

特征集合对象bbox成员的例子:

{ "type": "FeatureCollection",

"bbox": [100.0, 0.0, 105.0, 1.0],

"features": [

...

]

}

五、python读取写入geojson文件

GeoJson报告

GeoJson报告

GeoJson报告

GeoJson报告

六、GeoJSON文件优点

数据格式较为简单、易于读写、格式都是压缩的占用带宽小、可支持多种服务器端语言、便于客户端访问提取,从而大大简化了服务器端和客户端的代码开发量;

GeoJSON 对象可以表示几何、特征或者特征集合,而且保存了JSON 的简单、易于读写等优点;

提高数据传输效率和减少数据传输量的作用。

七、GeoJSON文件应用实例

GeoJson报告

1..实现网页端数据可视化

GeoJson报告

d3.js svg drawing contour lines from (geo/topo)json

GeoJson报告

2.移动端(手机APP)可视化

GeoJson报告