GeoJSON标准&基于Node.js发布GeoJSON服务
第一部分 GeoJSON通读
一、需求 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?
?(1)需求:当需要地理信息数据进行可视化或者GIS空间分析时,那么需要一定得数据模型。而这个数据模型也正是GIS数据结构的体现。在web2.0下,JSON的数据格式更为被普遍的认同,相比XML更为节省宽带和易读性更高。
(2)问题:如何设计GIS数据模型呢?
(3)决策:采用开源的GeoJSON标准。
?
二、GeoJSON示例 ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ??
? ? ? ?GeoJSON is a format for encoding a variety of geographic data structures. A GeoJSON object may represent a geometry, a feature, or a collection of features. GeoJSON supports the following geometry types: Point, LineString, Polygon, MultiPoint, MultiLineString, MultiPolygon, and GeometryCollection. Features in GeoJSON contain a geometry object and additional properties, and a feature collection represents a list of features.
? ? ? ?GeoJSON支持Point(点)、LineString(线段)、Polygon(多边形)、MultiPoint(多点)、MultiLineString(多线)、MultiPolygon(多边形集合)、GeometryCollection(图形集)。
? ? ?(1)示例:A GeoJSON feature collection:? ? ?
{ "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"} } } ] }
?(2)需要了解的:?
?一个GeoJSON对象可能是一个键对应多个值。
?一个GeoJSON对象必须有一个属性type,标识这个对象的所属类型。
?type取值只能是以下其一:?"Point"
,?"MultiPoint"
,?"LineString"
,"MultiLineString"
,?"Polygon"
,
? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ? ?"MultiPolygon"
,"GeometryCollection"
,?"Feature"
,