首页 > 解决方案 > 如何重绘与用户绘制的完全相同的多边形(超过 4 个顶点)?

问题描述

我的项目涉及允许用户在谷歌地图上绘制多边形,然后甚至检索该形状。为此,我将多边形路径存储在我的数据库中,并在稍后阶段对其进行查询以再次为用户绘制它。当我有简单的多边形(如三角形或正方形)时,这很有效,但复杂的多边形很少与绘制的多边形相同。

我正在获取路径坐标: var polyArray = selectedShape.getPath().getArray(); 我将这些值存储在我的数据库中。

要绘制,我正在使用 google.maps.Polygon() :

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

如您所见,多边形的图像与绘制的图像不同,这是有道理的,因为 getPath() 存储的顶点可以生成多个多边形。如何确保原始多边形是绘制的?getPath() 不应该自动添加更多顶点吗?我应该手动做吗?如何?

用户绘制: 在此处输入图像描述

使用 google.maps.Polygon() 重绘 在此处输入图像描述

标签: google-mapsgoogle-maps-api-3

解决方案


正如@geocodezip 在上面的评论中指出的那样,问题的根本原因是我没有保留数据库中坐标的顺序。

以相同的顺序保存和获取坐标解决了这个问题,我现在可以重新创建与绘制完全相同的多边形。


推荐阅读