【发布时间】:2014-01-16 10:00:29
【问题描述】:
我一直在从事一个 Google 地图项目,该项目允许您在地图上绘制和保存边界(多边形)。然后将其保存到数据库中,页面刷新并将信息拉回地图上。
我从其他用户的帖子中找到了下面的代码,并根据我的需要对其进行了调整,直到您从数据库中绘制多边形为止。
google.maps.event.addDomListener(drawingManager, 'polygoncomplete', function(polygon) {
polygon.setEditable(true);
google.maps.event.addListener(polygon.getPath(), 'set_at', function () {
document.getElementById("coordsField").value = updateArray(polygon);
});
google.maps.event.addListener(polygon.getPath(), 'insert_at', function () {
document.getElementById("coordsField").value = updateArray(polygon);
});
});
代码创建一个等待多边形完成的侦听器。然后它将多边形设置为可编辑并创建另外两个侦听器。第一个等待更新当前点,第二个等待创建新点,然后它们都更新包含所有点的数组,并在触发时将其保存到隐藏字段。
这段代码非常适合创建一个新的多边形,但是当从数据库创建一个多边形时,这就是另一回事了。当侦听器等待多边形完成时,它永远不会触发,因为它是自动操作的。我试图删除包装:
google.maps.event.addDomListener(drawingManager, 'polygoncomplete', function(polygon) {}
并添加更新侦听器,但是我收到“多边形未定义”的错误。有人能解释一下如何解决这个问题吗?
【问题讨论】:
-
如何从数据库创建多边形?
标签: javascript google-maps google-maps-api-3