【问题标题】:Not able to edit Polygon after editable option as true also in Drawing Manager of Google Maps v3在 Google Maps v3 的绘图管理器中,可编辑选项后也无法编辑多边形
【发布时间】:2012-03-12 14:23:08
【问题描述】:

我尝试使用绘图管理器绘制多边形并将多边形坐标发送到 PHP 脚本(以存储在数据库中)。

1) 我已将多边形的可编辑选项编码为“真”。但我不是 编辑多边形。我不是发现我做错了什么?

2)我也尝试得到

使用 getPaths 方法的多边形路径..它作为数组返回..我该怎么做 检查这个坐标是否正确。如果我在显示中输入警报 'Object[] Object'。请帮我解决这些问题。

【问题讨论】:

    标签: google-maps


    【解决方案1】:

    您需要将绘图模式设置为 true(以启用地图交互)。下面的代码可以解决问题:)

        google.maps.event.addListener(drawingManager, 'polygoncomplete', function(polygon) {
            drawingManager.setDrawingMode(null);
    
    });
    

    关于我目前正在研究的第二部分。使用 console.log 而不是 alert。

    【讨论】:

    • 你能告诉我为什么我们需要设置绘图模式吗?
    • 我已经有一段时间没有这样做了。但是当未设置绘图模式时,您无法与绘图交互...希望对您有所帮助
    • 感谢您分享您的知识。 ;)
    【解决方案2】:

    对于路径:

    var thisPath=polygon.getPath();
    for(i=0;i<thisPath.length;i++){
        var latlng=thisPath.getAt(i);
        pathString= pathString+', '+ latlng.lat()+' - '+ latlng.lng()+'\n'
    }
    alert (pathString);
    

    【讨论】:

      【解决方案3】:

      对于第 2 部分,sharingStuff 代码可以工作,我更喜欢路径是 json 对象,

      vertices = this.polygon.getPath();
      var points = [];
      // Iterate over the vertices.
      if(this.polygon.getMap() == null){
          return false;
      }
      for (var i =0; i < vertices.length; i++) {
          var xy = vertices.getAt(i);
          points.push(xy.lat() +"," + xy.lng());
      }
      return JSON.stringify({points: points});
      

      任何一种方法都可以,只是想我会给你另一种选择。 :)

      【讨论】:

        猜你喜欢
        • 2013-03-08
        • 2013-03-15
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2012-04-18
        • 1970-01-01
        • 2020-10-09
        • 2015-06-03
        相关资源
        最近更新 更多