我在生成 Google 地图时遇到了一个小问题。
我正在寻找一种在调整大小后重新居中地图的方法。我的功能允许调整大小,但我看不到中心点。
function initialise() {
var myMap = document.getElementById('map_div');
google.maps.event.trigger(myMap, 'resize');
};
我在生成 Google 地图时遇到了一个小问题。
我正在寻找一种在调整大小后重新居中地图的方法。我的功能允许调整大小,但我看不到中心点。
function initialise() {
var myMap = document.getElementById('map_div');
google.maps.event.trigger(myMap, 'resize');
};
我认为触发谷歌地图resize
不会影响谷歌地图的位置。但是,您可以使用以下方法设置/获取中心位置
map.getCenter();
map.setCenter(position);
这是您的完整代码:
function initialise() {
var myMap = document.getElementById('map_div');
var centerPosition = myMap.getCenter(); //get the center position
google.maps.event.trigger(myMap, 'resize');
myMap.setCenter(centerPosition); // re-center the position
};
希望这可以帮助。
2016 年 5 月 23 日的 API v3.24需要不同的方法:
var myMap = null, myPlace = null;
function initialiseGmapsStuff(){
myPlace = new google.maps.LatLng( 51.482496, 0.00 ); // Greenwich
var mapOptions = {
zoom: 16,
center: myPlace,
mapTypeId: google.maps.MapTypeId.SATELLITE,
scrollwheel: false, // Disable Mouse Scroll zooming (Essential for responsive sites!)
};
myMap = new google.maps.Map(document.getElementById('gmaps-container'), mapOptions);
google.maps.event.addDomListener( window, 'resize', $.throttle( 250, function(){
if( myMap !== null && myPlace !== null ){
myMap.setCenter( { lat: myPlace.lat(), lng: myPlace.lng() } );
}
} )
);
}
google.maps.event.addDomListener(window, 'load', initialiseGmapsStuff);
注意我对jQuery.throttle的使用——它不是必需的,但推荐使用。如果您不使用 jQuery,您显然应该使用某种原生形式的节流。