地理形狀通過GeoJSON來表示,這是一種開放的使用JSON實(shí)現(xiàn)的二維形狀編碼方式。
每個(gè)形狀包含兩個(gè)信息:形狀類型:point
, line
, polygon
, envelope
;一個(gè)或多經(jīng)緯度點(diǎn)集合的數(shù)組。
注意:
在 GeoJSON 里,經(jīng)緯度表示方式通常是“緯度在前,經(jīng)度在后”。
舉例如下,我們用一個(gè)多邊形來索引阿姆斯特丹達(dá)姆廣場:
PUT /attractions/landmark/dam_square
{
"name" : "Dam Square, Amsterdam",
"location" : {
"type" : "polygon", <1>
"coordinates" : [[ <2>
[ 4.89218, 52.37356 ],
[ 4.89205, 52.37276 ],
[ 4.89301, 52.37274 ],
[ 4.89392, 52.37250 ],
[ 4.89431, 52.37287 ],
[ 4.89331, 52.37346 ],
[ 4.89305, 52.37326 ],
[ 4.89218, 52.37356 ]
]]
}
}
上例中大量的方括號(hào)可能看起來讓人困惑,不過實(shí)際上 GeoJSON 的語法非常簡單:
用一個(gè)數(shù)組表示經(jīng)緯度坐標(biāo)點(diǎn):
[lon,lat]
一組坐標(biāo)點(diǎn)放到一個(gè)數(shù)組來表示一個(gè)多邊形:
[[lon,lat],[lon,lat], ... ]
polygon
)形狀可以包含多個(gè)多邊形;第一個(gè)表示多邊形的外輪廓,后續(xù)的多邊形表示第一個(gè)多邊形內(nèi)部的空洞:
[
[[lon,lat],[lon,lat], ... ], # main polygon
[[lon,lat],[lon,lat], ... ], # hole in main polygon
...
]
參見 Geo-shape mapping documentation 了解更多支持的形狀。