#node.js #geojson #google-cloud-sql
#node.js #geojson #google-cloud-sql
Вопрос:
Я использую API, который определяет области с использованием полигонов GeoJSON (которые я не контролирую) и использую их для запроса данных в облачной базе данных SQL. Проблема возникает, когда многие полигоны имеют небольшие артефакты, которые перекрываются, а Cloud SQL это не поддерживает.
Я хотел бы получить некоторую помощь в том, как упростить или сгладить эти полигоны, чтобы удалить эти артефакты. Мне определенно не нужен уровень детализации, указанный в этом полигоне для моего варианта использования. В приведенном ниже примере я предполагаю, что около 20-30 точек были бы достаточно точными.
Некоторые идеи, которые приходят на ум, — привязать координаты к сетке и удалить координаты, которые перекрываются, или иметь множество предопределенных областей и использовать этот полигон для выбора, какие области следует включить, но я новичок в этой области и ожидаю, что уже есть несколько хороших алгоритмов или решений этой проблемы.
Пример GeoJSON: https://gist.github.com/kennethlynne/2c94a6b895fe3bac686b397df4405344
Проблемная область с перекрытием, которую я особенно хочу исправить:
Ответ №1:
Взгляните на метод упрощения в Turf.js библиотеку и посмотрите, является ли это тем упрощением, которое вы ищете:
https://turfjs.org/docs/#simplify
По сути, он вернет упрощенный полигон GeoJSON на основе допуска, который вы передаете в параметре options
Комментарии:
1. Спасибо! В итоге я использовал turf.simplify turf.kinks, чтобы уменьшить сложность и выдать мне предупреждение, если после упрощения в моем полигоне все еще существовали перегибы. Пока все хорошо!