Как перерисовать точно такой же многоугольник, который нарисовал пользователь (более 4 вершин)? - PullRequest
0 голосов
/ 07 ноября 2019

Мой проект включает в себя предоставление пользователю возможности рисовать многоугольник на Картах Google, а затем даже восстанавливать эту форму. Для этого я сохраняю путь многоугольника в моей базе данных и запрашиваю его на более позднем этапе, чтобы снова нарисовать его для пользователя. Это работает, когда у меня есть простые многоугольники (например, треугольники или квадраты), но сложные редко бывают такими же, как было нарисовано.

Я получаю координаты пути через: var polyArray = selectedShape.getPath().getArray(); Я храню эти значения вмоя база данных.

Для рисования я использую google.maps.Polygon ():

var redrawnPolygon = new google.maps.Polygon({
        paths: polygonCoords
      });

Как видите, изображения многоугольников не совпадают с нарисованными, что делаетсмысл, потому что вершины, хранящиеся в getPath (), могут создавать более одного многоугольника. Как я могу убедиться, что нарисован исходный многоугольник? Разве getPath () не должен добавлять больше вершин автоматически? Должен ли я сделать их вручную? Как?

Нарисовано пользователем: enter image description here

Перерисовано с помощью google.maps.Polygon () enter image description here

1 Ответ

0 голосов
/ 07 ноября 2019

Как отметил @geocodezip в комментарии выше, основной причиной проблемы было то, что я не сохранял порядок координат в моей базе данных.

Сохранение и выборка координат в одном и том же порядке устранили проблемуи теперь я могу воссоздать точно такой же многоугольник, как был нарисован.

...