【问题标题】:How can I get content out of Google Maps MVCArray?如何从 Google Maps MVCArray 中获取内容?
【发布时间】:2016-10-08 17:25:05
【问题描述】:

我正在与google.maps.polygons 合作。该库使用google.maps.MVCArray 元素来存储多边形的顶点,其中每个顶点都包含一个纬度和经度变量。因此,我可以使用用户鼠标点击动态创建精美的多边形。

var listener1 = google.maps.event.addListener(map, "click", function(e) {
    var latLng = e.latLng;
    var myMvcArray = new google.maps.MVCArray();
    myMvcArray.push(latLng); // First Point
    var myPolygon = new google.maps.Polygon({
        map: map,
        paths: myMvcArray, // one time registration reqd only
        strokeColor: "#FF0000",
        strokeOpacity: 1.0,
        strokeWeight: 2,
        fillColor: "#FF0000",
        fillOpacity: 0.10,
        editable: true,
        draggable: false,
        clickable: true
    });
    google.maps.event.removeListener(listener1);

    var listener2 = google.maps.event.addListener(map, 'click', function(e) {
        latLng = e.latLng;
        myMvcArray.push(latLng);
        console.log(myMvcArray.getArray());
    });
});

我的问题是,控制台日志结果难以理解。我花了几个小时试图弄清楚如何从 myMvcArray 获取干净的数据。我需要在其他地方使用这些数据。

【问题讨论】:

    标签: google-maps google-maps-api-3 polygon


    【解决方案1】:

    原来诀窍是这样的:

    console.log(myMvcArray.getArray()[0].lat(), myMvcArray.getArray()[0].lng() );
    

    返回:XX.XX2157415679654 -XXX.XX782657623291

    For/Each 循环也可以工作。

    myMvcArray.getArray().forEach(function(value, index, array_x) {
        console.log(" index: " + index + "    value: " + value);
    })
    

    返回:

    index: 0    value: (XX.XX2157415679654, -XXX.XX782657623291)
    index: 1    value: (XX.XX209255908967, -XXX.XX77514743805)
    

    提供信息以防其他人在此处遇到问题。还要注意,上面的代码非常适合让用户在地图上轻松定义 google.maps.polygon。

    【讨论】:

      猜你喜欢
      • 2013-02-06
      • 1970-01-01
      • 2021-01-15
      • 2017-08-21
      • 2016-01-25
      • 2020-12-06
      • 2013-06-21
      • 2018-07-25
      • 1970-01-01
      相关资源
      最近更新 更多