Разница между WKT и GeoJson (разбор данных)
Мне нужно написать синтаксический анализатор на C++, который позволяет мне создавать тип геометрии geojson из допустимой строки WKT.
Итак, у меня есть действительная строка WKT в качестве входных данных, и мне нужно преобразовать ее и записать все координаты и т. Д. С использованием rapidjson.
Что меня интересует, так это соответствие Geojson и WKT с точки зрения синтаксического анализа. Например, кажется, что тип многоугольника Geojson соответствует координатам и порядку внешних / внутренних колец.
Итак, эквивалентны ли типы Geojson и WKT с точки зрения порядка координат и внутренней структуры для всех типов (точка, линейная строка, мультиполигон?
Это сделало бы преобразование почти тривиальным.
1 ответ
WKT идеально подходит для наборов данных чрезвычайно высокой точности, поскольку он может поддерживать различные CRS'. Однако системой координат для всех координат GeoJSON является WGS 84. Таким образом, в дополнение к географической системе координат, формат WKT может также описывать, как комбинировать геоцентрические, проектные, вертикальные, временные и инженерные системы координат; в то время как "GeoJSON не ограничивает вас долготой, широтой, высотой... многомерные данные не так распространены, поскольку гибкость GeoJSON не соответствует другим форматам".
Другое ключевое отличие WKT от GeoJSON заключается в том, что GeoJSON (на основе JSON) чувствителен к регистру, а WKT - нет. WKT также способен поддерживать изогнутые формы, а GeoJSON- нет.
Таким образом, существует определенная потребность в инструментах преобразования. После дальнейших исследований вы можете найти несколько WKT-парсеров, генерирующих GeoJSON, в том числе созданный Томом МакВрайтом (для браузеров и узлов), который позволяет пользователям анализировать и преобразовывать хорошо известный текст в GeoJSON.
Не уверен, что вы поняли это, но хотели бы дать ответ для всех, кто может быть заинтересован.
Источники:
https://tools.ietf.org/html/rfc7946
http://www.macwright.org/2015/03/23/geojson-second-bite.html