#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"
}
}
}
}
}