如何在声明/初始化之后检索谷歌地图api对象;重新定位地图对象(v3)?

时间:2011-05-09 17:33:22

标签: google-maps center

我正在开始使用google maps api(v3)并且它看起来很不错,但是在将地图对象声明/初始化后,我在检索地图对象时遇到了一些困难。

<script type="text/javascript">
  function initialize() {
    var latlng = new google.maps.LatLng(38.90229, -77.021899);
    var myOptions = {
      zoom: 8,
      center: latlng,
      mapTypeId: google.maps.MapTypeId.ROADMAP
    };
    var map = new google.maps.Map(document.getElementById("map_canvas"),
    myOptions);
  }

  function Search() {
    alert ("Searching...");
    var map = document.getElementById("map_canvas");
    // Want to do is map.setCenter(...) but I don't know how to retrieve the map object
  }

</script>

查看我正在处理的搜索功能?我想最终重新定位地图。但是,通常,我想检索在初始化时创建的地图对象。

谢谢。

1 个答案:

答案 0 :(得分:2)

您应该在intialize()中返回地图(并可能更改该功能的名称)。你现在拥有它的方式,它只是initialize()函数中的一个局部变量。所以,initialize函数的最后一行应该更像是

return new google.maps.Map(document.getElementById("map_canvas"), myOptions);

然后当你调用initialize时,将返回值赋给变量,比如称为map。将地图对象返回到变量后,可以使用以下内容重新定位:

map.setCenter(new google.maps.LatLng(lat, lon)); 

您现在拥有它的方式,您可能希望将map作为参数传递给Search()。