【问题标题】:Google Maps API v3 disabling markersGoogle Maps API v3 禁用标记
【发布时间】: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


【解决方案1】:

触发绘图管理器的多边形完成事件并将自动创建的多边形实例作为参数传递给回调(trigger的第三个参数):

polygonInstance = new google.maps.Polygon(/*options*/);

google.maps.event.trigger(drawingManager, 
                         'polygoncomplete',
                          polygonInstance);

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 2012-05-11
    • 2011-09-05
    • 2016-11-06
    • 1970-01-01
    • 1970-01-01
    • 2017-11-29
    • 2012-06-18
    相关资源
    最近更新 更多