什么是谷歌地图V3中的openInfoWindowHtml和GPolygon

时间:2010-07-16 19:13:06

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

   var polygon = new GPolygon(polylines[0],"#FFFFFF", 1, 1.0, color,opacity);

  polygon.hid = this.id;
  polygon.heat = this.heat;

   google.maps.event.addListener(polygon, 'click', function(point) {

    HoodsUnselect(active_hood_id);
    active_hood_id = polygon.hid;
polygon.setOptions({fillColor: '#2948e4', fillOpacity: 0.50 });
  //polygon.setFillStyle( { color:'#2948e4',opacity:'0.50' } );

    if (point) {
      map.openInfoWindowHtml(point, the_list);  // open info window where user clicked

    } else {
       map.openInfoWindowHtml(polygon.getBounds().getCenter(), the_list);  // open info window at the center of polygon
    }
  });

2 个答案:

答案 0 :(得分:15)

除了Tony's answer之外,v3 API中没有openInfoWindowHtml()方法。您必须创建一个InfoWindow对象,您可以在其上调用open()close()方法。如果您只希望同时显示一个InfoWindow对象,通常只需要一个var infoWindow = new google.maps.InfoWindow(); google.maps.event.addListener(yourOverlay, 'click', function () { infoWindow.setContent('Some info on yourOverlay'); infoWindow.open(map); }); 对象:

InfoWindow

在信息窗口中,v2 API和v3 API之间的主要区别在于,在v3 API中,您可以同时打开多个信息窗口。这在v2 API中是不可能的。要打开多个Info窗口,您需要创建多个var bermudaTriangle = new google.maps.Polygon({ paths: [ new google.maps.LatLng(25.774252, -80.190262), new google.maps.LatLng(18.466465, -66.118292), new google.maps.LatLng(32.321384, -64.75737) ], strokeColor: "#FF0000", strokeOpacity: 0.8, strokeWeight: 3, fillColor: "#FF0000", fillOpacity: 0.35 }); bermudaTriangle.setMap(map); 个对象,而不是只创建一个所有标记(叠加层)。

对于多边形,这是如何在v3 API中创建多边形(借用示例mentioned by @Tony):

{{1}}

答案 1 :(得分:2)

GPolyline的v3等效值为Polyline,GPolygon为Polygon。这两个都有你可以听的点击事件。

更好的是,Google提供Polyline examplesPolygon examples,包括one that listens for clicks and opens an infowindow