Неожиданные ошибки валидации Cosmos db от Geo JSON, полученные от Агентства по охране окружающей среды Великобритании - PullRequest
0 голосов
/ 04 марта 2020

ОБНОВЛЕНИЕ 2020-03-04

Использование MySql Сервер 8.0.19 Я могу успешно проверить этот Geo JSON используя SELECT ST_IsValid(ST_GeomFromGeoJSON(geojson)) FROM test; Тип данных для столбца geo json равен json.

ОРИГИНАЛЬНЫЙ ВОПРОС

Я новичок в геопространственной игре, и она кажется очень нетривиальной! Заголовки предполагают, что Cosmos db поддерживает Geo JSON из коробки, за исключением того, что ST_WITHIN () не поддерживает дыры. Не проблема.

Итак, я загрузил все доступные "полигоны" из https://environment.data.gov.uk/flood-monitoring/doc/reference в Cosmos db

Я обнаружил, что 2417 из 3851 Космос сообщает, что они недействительны, но когда я беру несколько из якобы недействительных, они отлично отрисовываются на http://geojson.io Также я отмечаю, что каждый MulitPolygon также не проходит проверку, и снова не возникает проблем с рендерингом. Их насчитывается 1 947.

Источник приведенного ниже примера: https://environment.data.gov.uk/flood-monitoring/id/floodAreas/055WAF137PB/polygon

SELECT ST_ISVALIDDETAILED(c.features[0].geometry) FROM c WHERE c.id = "055WAF137PB"
[
    {
        "$1": {
            "valid": false,
            "reason": "Not valid because an invalid polygon or multi-polygon is detected."
        }
    }
]

Для полноты приведем пример пройти проверку в Космосе https://environment.data.gov.uk/flood-monitoring/id/floodAreas/011WAFGB/polygon

и мультиполигоне (который не работает) https://environment.data.gov.uk/flood-monitoring/id/floodAreas/053FWFPUWI06/polygon

Большое спасибо в ожидании ваших мнений экспертов и предложения.

...