我正在开始使用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>
查看我正在处理的搜索功能?我想最终重新定位地图。但是,通常,我想检索在初始化时创建的地图对象。
谢谢。
答案 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()。