如何重新组织 geo JSON 文件

How top reorganize geo JSON file

我有一个格式为

的 geoJSON 文件
{
    "type": "Feature",
    "id":"01",
    "properties": {
        "name": "AREA"

    },
    "geometry": {
        "type": "MultiPolygon",
        "coordinates": [
            [
                [
[103.83994102478027, 1.5533451402176797], [103.84079933166502, 1.5600374631000955], [103.84440422058104, 1.5627830253088353], [103.85178565979004, 1.5632978178235577], [103.85693550109862, 1.5566055053011625], [103.8552188873291, 1.548368783815046], [103.84852409362793, 1.546995993784303], [103.84320259094238, 1.5480255863906685], [103.8413143157959, 1.550427967193869],[103.83994102478027, 1.5533451402176797]
                ]
            ]
        ]
    }
},

{
        "type": "Feature",
        "id":"02"

..... .... ....等等。

但是当我验证它时它显示 geoJSON 没有跟随右手 rule.But 当我在地图上绘制它时它工作 fine.But 我希望我的是一个有效的 geoJSON 那么如何我可以将其更改为

{
        "type": "Feature",
        "id":"01",
        "properties": {
            "name": "AREA"

        },
        "geometry": {
            "type": "MultiPolygon",
            "coordinates": [
                [
                    [
    [103.83994102478027, 1.5533451402176797],[103.8413143157959, 1.550427967193869],[103.84320259094238, 1.5480255863906685] ,[103.84320259094238, 1.5480255863906685],[103.84852409362793, 1.546995993784303], [103.8552188873291, 1.548368783815046],[103.85693550109862, 1.5566055053011625],[103.85178565979004, 1.5632978178235577], [103.84440422058104, 1.5627830253088353],[103.84079933166502, 1.5600374631000955],[103.83994102478027, 1.5533451402176797]
                    ]
                ]
            ]
        }
    },



{
            "type": "Feature",
            "id":"02"

....
....
.... and so on.

感谢任何帮助。

这是一个 JS 函数,可确保多边形的点按逆时针顺序排列(对于右手法则多边形的外部,它们应该如此)。

var testPoly = [[103.83994102478027, 1.5533451402176797], [103.84079933166502, 1.5600374631000955], [103.84440422058104, 1.5627830253088353], [103.85178565979004, 1.5632978178235577], [103.85693550109862, 1.5566055053011625], [103.8552188873291, 1.548368783815046], [103.84852409362793, 1.546995993784303], [103.84320259094238, 1.5480255863906685], [103.8413143157959, 1.550427967193869],[103.83994102478027, 1.5533451402176797]];

function makePolyCCW(points) {
  var sum = 0;
  for (var i = 0; i < (points.length - 1); i++) {
    sum += (points[i+1][0] - points[i][0])*(points[i+1][1] + points[i][1]);
  }
  return sum > 0 ? points.slice().reverse() : points;
}

console.log(makePolyCCW(testPoly));

您似乎只提供了完整 JSON 文件的一个片段。根据您需要修复的几何类型(多边形、多边形等),代码可能或多或少涉及。如果您需要帮助将上述功能应用于完整文件,请提供更多详细信息,也许我可以提供帮助。