[英]Converting a list of JSON polygon coordinates to Long/Lat arrays in GeoJSON format
我從REST API獲取數據,從而生成數據集列表。 其中一些數據集包含我想在地圖上投影的坐標。 為了投影坐標,我需要將JSON輸出轉換為GeoJSON。 雖然轉換適用於大多數數據部分。 我掙扎着一個包含x和y坐標的長數組。 它是4個點組合成多邊形(第5個端點=缺少起點)。
如何將具有4+ XY坐標的這個數組轉換為正確的格式,同時還添加應與第一個點匹配的最后一個?
我想過為每個點切割數組到新的數組,但這會導致超過20個點的多邊形工作太多。
JSON示例:
"footprint": {
"epsgId": 4326,
"data": [
[
5.785569964298996,
50.94215924789526,
5.934953425435474,
50.94154873163077,
5.9341556116101595,
50.87413533708443,
5.784989651500041,
50.87474468292546
]
],
},
這是轉換為GeoJSON后的樣子。 我自己寫下了這篇文章,但是我需要一個JavaScript代碼來自動執行此操作,同時循環結果。
{
"type": "Feature",
"properties": {
"name": "name"
"id" : "id"
},
"geometry": {
"type": "Polygon",
"coordinates": [
[
[5.785569964298996, 50.94215924789526],
[5.934953425435474, 50.94154873163077],
[5.9341556116101595, 50.87413533708443],
[5.784989651500041, 50.87474468292546],
[5.785569964298996, 50.94215924789526]
]
]
}
}
我認為這個功能可以幫到你。
d = {"footprint": {
"epsgId": 4326,
"data": [
[
5.785569964298996,
50.94215924789526,
5.934953425435474,
50.94154873163077,
5.9341556116101595,
50.87413533708443,
5.784989651500041,
50.87474468292546
]
],
}
}
console.log(d)
function convert(points)
{
geojson = {
"geometry": {
"type": "Polygon",
"coordinates": [
]
}
}
var coordinates = new Array();
for (var i = 0; i < points.length; i+=2) {
coordinates.push([points[i],points[i+1]])
}
//closing the polygon
coordinates.push([points[0],points[1]])
// points need to be in zero index of coordinates array
geojson.geometry.coordinates = new Array(coordinates);
return geojson;
}
console.log(convert(d["footprint"]["data"][0]))
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.