Я использую библиотеку rgeo ruby для анализа полигонов geojson. Поведение заключается в возврате nil при вызове декодирования для многоугольника с повторяющимися точками, как в следующем примере:
geom = {:geom=>{"type"=>"Polygon", "coordinates"=>[[[-82.5721, 28.0245], [-82.5721, 28.0245] ... }
geo_factory = RGeo::Cartesian.factory(:srid => 4326)
rgeo_geom = RGeo::GeoJSON.decode(geom, json_parser: :json, geo_factory: geo_factory)
Из-за повторяющейся точки в начале rgeo_geom будет равен нулю после выполнения этого кода.
Как наиболее эффективно очистить этот многоугольник? Есть ли встроенная функция rgeo или мне нужно создать свою собственную?
Чтобы было ясно, я хотел бы удалить только последовательные повторяющиеся точки, так как это заставляет библиотеку возвращать nil для приведенного выше кода. Я также не ищу в БД решения, такие как postgis st_removerepeatedpoints, но по существу ищу такое поведение, выполненное в ruby.