【问题标题】:getpaths() polygons google maps apigetpaths() 多边形谷歌地图 API
【发布时间】:2013-02-03 14:15:27
【问题描述】:

我正在尝试检索折线和多边形的纬度坐标。在完成任一对象的绘制后,我想将 latlng 存储在数据库中,但现在我只是试图在 textarea 中显示 latlng。对于标记、矩形和圆形,我已经很容易做到这一点,但是折线和多边形的术语让我感到困惑。当我完成绘图时,我使用 addDomListener(drawingManager, 'polygoncomplete', ... 用于多边形,然后遍历我绘制的所有多边形。对于每个多边形,然后遍历其坐标数组。我搜索了这个论坛数据库并在 Google 文档页面上尝试了百慕大三角示例。 Bermuda Example 我已经阅读了很多次文档,只是看不到我缺少什么。任何帮助表示赞赏。

//Save polygons data to text area
                var polygons = [];

                google.maps.event.addDomListener(drawingManager, 'polygoncomplete', function(polygon) {
                  polygons.push(polygon);
                });

                google.maps.event.addDomListener(savebutton, 'click', function() {
                    document.getElementById("savedatapolygon").value = "";
                    for (var i = 0; i < polygons.length; i++) {
                      var polygonBounds = polygons[i].getPath();
                      var xy;
                        // Iterate over the polygonBounds vertices.
                        for (var i = 0; i < polygonBounds.length; i++) {
                            xy = polygonBounds.getAt(i);
                            contentString += '<br>' + 'Coordinate: ' + i + '<br>' + xy.lat() +',' + xy.lng();
                        }
                      document.getElementById("savedatapolygon").value += "polygon(";
                      document.getElementById("savedatapolygon").value += contentString;
                      document.getElementById("savedatapolygon").value += ")";

                    }
        });

【问题讨论】:

  • 你得到什么 javascript 错误? This example 可能会对您有所帮助,它将 DrawingManager 中的所有对象导出为 JSON 或 KML。
  • 完美!这将节省我很多时间。我在工作中使用文本板,因为这就是我可用的所有内容,我无法下载任何其他内容,所以我无法跟踪任何错误:/
  • 大多数浏览器都有一个报告错误的 javascript 控制台,使用调试器更简单,但有时您只需要查看报告的错误。

标签: google-maps-api-3 latitude-longitude polygons


【解决方案1】:

Google Maps Polygon 类返回 MVCArray。需要使用MVCArrayforEach方法循环遍历。

var polygonBounds = polygons[i].getPath();
// Iterate over the polygonBounds vertices.
polygonBounds.forEach(function(xy, i) {
  contentString += '<br>' + 'Coordinate: ' + i + '<br>' + xy.lat() +',' + xy.lng();
});
document.getElementById("savedatapolygon").value += "polygon(";
document.getElementById("savedatapolygon").value += contentString;
document.getElementById("savedatapolygon").value += ")";

【讨论】:

    猜你喜欢
    • 2012-07-01
    • 2011-09-13
    • 1970-01-01
    • 2011-12-03
    • 2012-06-15
    • 1970-01-01
    • 2016-11-22
    • 2011-11-21
    相关资源
    最近更新 更多