У меня есть данные устаревших областей, где некоторые записи в формате Polygon
, а некоторые в формате MultiPolygon
хранятся в базе данных noSQL в формате JSON. Мне нужно перенести эти данные в базу данных PostGIS со столбцом area
, который имеет тип ST_MultiPolygon.
Итак, мой вопрос: как я могу преобразовать Polygon
области в MultiPolygon
с помощью RGeo gem или чего-то подобного?
Прямо сейчас я конвертирую MultiPolygons следующим образом:
multipolygon = RGeo::GeoJSON.decode(location.area)
PostgisLocation.create(area: multipolygon)
Но когда область не мультиполигональная, а полигональная, БД выдает исключение: PG::InternalError: ERROR: parse error - invalid geometry
Пример текстового представления полигона:
POLYGON ((-6.00606009808446 54.5901007810674, -6.01003269079491 54.5928954129105, -5.97732358111394 54.5870863982436, -6.00606009808446 54.5901007810674))
Самая глупая вещь, которая приходит мне в голову, это заменить POLYGON
словом MULTIPOLYGON
и добавить дополнительные скобки ()
. Но я считаю, что должен быть лучший способ преобразовать это с помощью библиотеки RGeo. Я потратил некоторое время на чтение документации по RGeo, но не нашел ничего, что могло бы мне помочь.