【发布时间】:2012-04-26 11:29:49
【问题描述】:
使用 Google Maps JavaScript v3 API,是否可以在同一张地图上绘制多个单独的多边形?并包含一个在绘制每个形状后出现的消息框,并带有警告:'单击休息以绘制另一个'?
【问题讨论】:
标签: javascript google-maps draw polygon
使用 Google Maps JavaScript v3 API,是否可以在同一张地图上绘制多个单独的多边形?并包含一个在绘制每个形状后出现的消息框,并带有警告:'单击休息以绘制另一个'?
【问题讨论】:
标签: javascript google-maps draw polygon
是的,您可以在地图上绘制多个多边形;查看Drawing Library。如果您想在完成一个形状后显示一条消息,您需要针对 DrawingManager 定义一个侦听器函数,以侦听几个可能的完成事件通知之一:
google.maps.event.addListener(drawingMgr, 'overlaycomplete', function( event ){
var shape = event.overlay;
var path = shape.getPath(); //returns an MVCArray of LatLng instances
for ( var i = 0; i < path.length; i++ ) {
var lat = path.getAt(i).lat(); //Corrected as per MVCArray
var lng = path.getAt(i).lng(); //Corrected as per MVCArray
//do something with the data...
}
//put your message display code here
});
在函数回调中,您可以访问刚刚完成的形状。所以在上面的代码中,event.overlay 将为您提供对形状的直接引用。如果我们假设形状是Polygon,那么您将能够直接访问形状的成员,如上所示。完整的Polygon 成员集记录在here。
【讨论】:
Polygon 的文档链接,以便您更深入地了解。
我把整个代码都为我工作了:
enter code here
google.maps.event.addListener(drawingMgr, 'overlaycomplete', function( event ){
var shape = event.overlay;
var path = shape.getPath(); //returns an Array of LatLng
for ( var i = 0; i < path.length; i++ ) {
var lat = path.getAt(i).lat();
var lng = path.getAt(i).lng();
//do something with the data...
}
//put your message display code here
});
【讨论】: