zip*_*zit 2 google-maps polygon google-maps-api-3
我正在使用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());
});
});
Run Code Online (Sandbox Code Playgroud)
我的问题是,控制台日志结果是不可理解的.我花了几个小时试图弄清楚如何从myMvcArray获取干净的数据.我需要在其他地方使用这些数据.
事实证明这是诀窍:
console.log(myMvcArray.getArray()[0].lat(), myMvcArray.getArray()[0].lng() );
Run Code Online (Sandbox Code Playgroud)
哪个回报: XX.XX2157415679654 -XXX.XX782657623291
For/Each循环也可以工作.
myMvcArray.getArray().forEach(function(value, index, array_x) {
console.log(" index: " + index + " value: " + value);
})
Run Code Online (Sandbox Code Playgroud)
哪个回报:
index: 0 value: (XX.XX2157415679654, -XXX.XX782657623291)
index: 1 value: (XX.XX209255908967, -XXX.XX77514743805)
Run Code Online (Sandbox Code Playgroud)
如有任何其他人在此处有问题,请提供信息.另请注意,上面的代码非常适合让用户轻松地在地图上定义google.maps.polygon.
| 归档时间: |
|
| 查看次数: |
2293 次 |
| 最近记录: |