GeoJSON の基礎
GeoJSON は、地理データ構造のエンコードに使用される JavaScript オブジェクト表記法( JSON )に基づいた、ジオデータのオープンな標準化された形式です。 この項は 、 RFC 7946 に基づいています。
GeoJSON は、地理データとその非空間属性をテキストで表現したものです。 GeoJSON ドキュメントには 、 Feature、 FeatureCollection 、または Geometry のいずれかのオブジェクトが含まれています。 オブジェクトには、 次のいずれかのプロパティタイプが必要です。
ポイント
Point オブジェクトの座標配列には、通常、経度、緯度、および場合によってはこの順序での高度を表す 2 ~ 3 つの次元が含まれています。
ポイントの例
{
"type": "Point",
"coordinates": [8.53362,50.16192]
}
地図でこのポイントを表示します
マルチポイント
coordinates 配列の各エントリは Point coordinates 配列です。
MultiPoint の例
{
"type": "MultiPoint",
"coordinates": [
[13.35,52.5145], [13.377,52.5162]
]
}
この MultiPoint を マップで表示します
LineString
LineString coordinates 配列は、複数の Point coordinates 配列で構成されます。
LineString の例
{
"type": "LineString",
"coordinates": [
[13.35,52.5145], [13.377,52.5162]
]
}
この LineString を マップで表示します
多言語対応
名前が示すよう に、 MultiLineString coordinates 配列には LineString coordinates 配列が含まれています。
MultiLineString の例
{
"type": "MultiLineString",
"coordinates": [
[
[78.0422,27.1744],[78.0422,27.1733]
],
[
[78.0422,27.1730],[78.0422,27.1719]
]
]
}
この MultiLineString を マップで表示します
多角形
Polygon coordinates 配列の各要素は、特殊 な LineString coordinates 配列である必要があります。 この特殊な種類は 、 RFC 仕様では「リニアリング」と呼ばれています。 「リニアリング」では、座標 配列の最初と最後のエレメントが同じです。
Polygon に 複数の「リニアリング」 ( 穴のあるシェイプ ) が含まれている場合、最初のリングが穴に沿って外側のリングを記述する必要があります。 外部リングの座標は、左回りに、穴の座標を時計回りにリストする必要があります。
Polygon の例
{
"type": "Polygon",
"coordinates": [
[
[-77.0578,38.87254],[-77.0584,38.87],[-77.0555,38.8688],[-77.0531,38.8706],[-77.0546,38.8729],[-77.0578,38.87254]
],
[
[-77.0567,38.8715],[-77.0555,38.8717],[-77.0549,38.8708],[-77.0558,38.8702],[-77.0569,38.8706],[-77.0567,38.8715]
]
]
}
この多角形を地図で表示します
MultiPolygon
MultiPolygon では、座標配列の各要素が 、上の Polygon として定義されます。
MultiPolygon の例
{
"type": "MultiPolygon",
"coordinates": [
[
[[31.1330,29.9780],[31.1354,29.9780],[31.1354,29.9801],[31.1330,29.9801],[31.1330,29.9780]],
[[31.1296,29.9750],[31.1319,29.9750],[31.1319,29.9769],[31.1296,29.9769],[31.1296,29.9750]],
[[31.1277,29.9720],[31.1287,29.9720],[31.1287,29.9729],[31.1277,29.9729],[31.1277,29.9720]]
]
]
}
この MultiPolygon をマップで表示します
機能
Feature オブジェクトには 、 type プロパティ以外に 、 geometry および の 2 つのメンバーが含まれています
ジオメトリ には、前述のタイプのいずれか、または GeoJSON の null 値を使用できます。
プロパティの値 には、任意の GeoJSON オブジェクトまたは GeoJSON の null 値を使用できます。
フィーチャーの例
{
"type": "Feature",
"geometry": {
"type": "LineString",
"coordinates": [
[13.35,52.5145], [13.377,52.5162]
]
},
"properties": {
"prop0": "value0",
"prop1": "value1"
}
}
地図でこの機能を表示します
FeatureCollection
FeatureCollection には 、features というメンバに含まれている Features の配列が含まれています。
FeatureCollection の例
{
"type": "FeatureCollection",
"features": [
{
"type": "Feature",
"geometry": {
"type": "Point",
"coordinates": [
-2.960847,
53.430828
]
},
"properties": {
"@ns:com:here:xyz": {
"tags": [
"football",
"stadium"
]
},
"name": "Anfield",
"amenity": "Football Stadium",
"capacity": 54074,
"popupContent": "Home of Liverpool Football Club"
}
}
]
}
この FeatureCollection を マップで参照します
GeometryCollection
GeometryCollection は、 上記のような 0 個以上のジオメトリオブジェクトのコレクションです。このコレクションは、 geometries という名前の配列メンバに含まれています
警告
GeometryCollection は HERE XYZ ハブではサポートされていません。 完全性を保つために HERE が含まれています。
GeometryCollection の例
{
"type": "GeometryCollection",
"geometries": [
{
"type": "Point",
"coordinates": [8.53362,50.16192]
},
{
"type": "LineString",
"coordinates": [
[13.35,52.5145], [13.377,52.5162]
]
}
]
}