如何使用Google Map API在Google Map上绘制矩形

时间:2012-03-30 12:21:00

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

我是stackoveflow的新手,任何人都可以帮我看看如何使用google api v3绘制一个矩形,我在谷歌上看了一些例子我得到了下面的代码,

function initialize() {

  var coachella = new google.maps.LatLng(33.6803003, -116.173894);
  var rectangle;

  var myOptions = {
    zoom: 11,
    center: coachella,
    mapTypeId: google.maps.MapTypeId.TERRAIN
  };

  var map = new google.maps.Map(document.getElementById("map_canvas"),
      myOptions);

  rectangle = new google.maps.Rectangle();

  google.maps.event.addListener(map, 'zoom_changed', function() {

    // Get the current bounds, which reflect the bounds before the zoom.
    var rectOptions = {
      strokeColor: "#FF0000",
      strokeOpacity: 0.8,
      strokeWeight: 2,
      fillColor: "#FF0000",
      fillOpacity: 0.35,
      map: map,
      bounds: map.getBounds()
    };
    rectangle.setOptions(rectOptions);
  });
}

但是,它适用于缩放事件(变焦通道),我想要简单的事件,请帮助我

1 个答案:

答案 0 :(得分:2)

map.getBounds()在调用早期时(实例化地图后立即)可能不返回所需的边界。

您可以使用tilesloaded而不是

google.maps.event.addListenerOnce(map, 'tilesloaded', function() {
     /*your code*/
  });