google-maps - 如何重绘与用户绘制的完全相同的多边形(超过 4 个顶点)?
问题描述
我的项目涉及允许用户在谷歌地图上绘制多边形,然后甚至检索该形状。为此,我将多边形路径存储在我的数据库中,并在稍后阶段对其进行查询以再次为用户绘制它。当我有简单的多边形(如三角形或正方形)时,这很有效,但复杂的多边形很少与绘制的多边形相同。
我正在获取路径坐标:
var polyArray = selectedShape.getPath().getArray();
我将这些值存储在我的数据库中。
要绘制,我正在使用 google.maps.Polygon() :
var redrawnPolygon = new google.maps.Polygon({
paths: polygonCoords
});
如您所见,多边形的图像与绘制的图像不同,这是有道理的,因为 getPath() 存储的顶点可以生成多个多边形。如何确保原始多边形是绘制的?getPath() 不应该自动添加更多顶点吗?我应该手动做吗?如何?
解决方案
正如@geocodezip 在上面的评论中指出的那样,问题的根本原因是我没有保留数据库中坐标的顺序。
以相同的顺序保存和获取坐标解决了这个问题,我现在可以重新创建与绘制完全相同的多边形。
推荐阅读
- java - Gradle (java):测试任务应该使用生成的 .jar 而不是类路径中的 .class 文件
- c++ - 如何在 C++ 中使用接口
- clojure - Clojure 哈希算法
- c++ - 在 switch 语句中分配 lambda
- c# - 扩展动态调度以调用视图模型中的函数?
- firebase - 如何将firebase配置为nuxt插件?
- c-preprocessor - 在 Doxygen 中记录条件独占代码
- python - 使用 AdamOptimizer 继续训练自定义 tf.Estimator
- javascript - React Native 等待所有图像预取完成
- php - Laravel关系并获取第三张表的数据