Форматирование GeoJSON должно быть вложено более глубоко

#json #formatting #polygon #geojson

#json #форматирование #полигон #geojson

Вопрос:

У меня есть экспортированный geoJSON формат, содержащий длинный ряд координат полигонов. Прикрепляя первые несколько строк, оно продолжается таким же образом:

 {
  "Type": 8,
  "Features": [
    {
      "Type": 7,
      "Id": null,
      "Geometry": {
        "Type": 4,
        "Coordinates": [
          {
            "Type": 2,
            "Coordinates": [
              {
                "Altitude": null,
                "Latitude": 85.683948266763423,
                "Longitude": 100.62897140939768
              },
              {
                "Altitude": null,
                "Latitude": 86.183185093020128,
                "Longitude": 100.62897140939695
              },
              {
                "Altitude": null,
                "Latitude": 86.183185093020128,
                "Longitude": 102.58500571589823
              },
              {
                "Altitude": null,
                "Latitude": 97.662303996119974,
                "Longitude": 102.58500571589828
              },
              {
                "Altitude": null,
                "Latitude": 97.662303996119988,
                "Longitude": 97.853903401585853
              },
              {
                "Altitude": null,
                "Latitude": 85.683948266763423,
                "Longitude": 97.853903401585839
              },
              {
                "Altitude": null,
                "Latitude": 85.683948266763423,
                "Longitude": 100.62897140939768
              }
            ],
            "BoundingBoxes": null,
            "CRS": null
          }
        ],
        "BoundingBoxes": null,
        "CRS": null
      },
      "Properties": {
        "Name": "Shop",
        "Area": 572.15969696515185
      },
      "BoundingBoxes": null,
      "CRS": null
    },
    {
      "Type": 7,
      "Id": null,
      "Geometry": {
        "Type": 4,
        "Coordinates": [
          {
            "Type": 2,
            "Coordinates": [
              {
                "Altitude": null,
                "Latitude": 91.298364266763443,
                "Longitude": 86.631773715898134
              },
              {
  

Я попытался просмотреть различные объяснения geoJSON формата в Интернете, но не нашел информации о том, почему "Type" он числовой и не соответствует фактическому типу, например "Polygon" .

Кроме того, во время тестирования на GeoJSON Viewer amp; Validator я попробовал отладку и преобразовал некоторые начальные строки в:

 {
  "type": "MultiPolygon",
  "coordinates": [
    {
      "type": 7,
      "Id": null,
      "Geometry": {
        "Type": "Polygon",
        "Coordinates": [
          {
            "Type": 2,
            "Coordinates": [
              {
                "Altitude": null,
                "Latitude": 85.683948266763423,
                "Longitude": 100.62897140939768
              },
  

Я заменил Type на type и 8 на MultiPolygon etc.
В приведенной выше ситуации я получаю следующую ошибку для каждого полигона:

Строка 5: найдено число там, где должен был быть найден массив координат: это должно быть вложено более глубоко

Я не уверен, что нужно изменить в формате, чтобы сделать его согласованным для средства проверки. Я думаю, что формат экспорта может быть старым, но я не тот, кто его создал, поэтому, возможно, ручная замена некоторых полей может решить проблему.

Какие-либо советы?

Ответ №1:

Немного поздно для вечеринки, но похоже, что это недействительный GeoJSON, вы можете найти официальные схемы JSON, которые описывают спецификацию здесь: https://github.com/geojson/schema . Например, указано, что type функция должна быть объектом JSON, а не целым числом, что для каждой функции type properties требуются, , и т.д. geometry

   "$schema": "http://json-schema.org/draft-07/schema#",
  "$id": "https://geojson.org/schema/Feature.json",
  "title": "GeoJSON Feature",
  "type": "object",
  "required": [
    "type",
    "properties",
    "geometry"
  ]
(etc.)
  

Для мультиполигона вот схема: https://geojson.org/schema/MultiPolygon.json

Способ хранения координат в вашем файле также не является стандартным GeoJSON, поскольку они должны быть записаны в виде массива чисел:

 "coordinates": {
      "type": "array",
      "items": {
        "type": "array",
        "items": {
          "type": "array",
          "minItems": 4,
          "items": {
            "type": "array",
            "minItems": 2,
            "items": {
              "type": "number"
            }
          }
        }
      }
    }