Javascript Maps API v3:map.setCenter工作不正常
我在Maps api V3中遇到了一个设置中心问题 首先,这是我的代码:Javascript Maps API v3:map.setCenter工作不正常,javascript,google-maps-api-3,Javascript,Google Maps Api 3,我在Maps api V3中遇到了一个设置中心问题 首先,这是我的代码: function initialize() { var myLatlng = new google.maps.LatLng(<?= $product["latitude"] ?>,<?= $product["longitude"] ?>); var center = myLatlng; var map = new google.maps.Map(document.getEl
function initialize() {
var myLatlng = new google.maps.LatLng(<?= $product["latitude"] ?>,<?= $product["longitude"] ?>);
var center = myLatlng;
var map = new google.maps.Map(document.getElementById('map'), {
zoom: 11,
center: myLatlng
});
var marker = new google.maps.Marker({
position: myLatlng,
map: map
});
google.maps.event.addDomListener(map, 'idle', function() {
center = map.getCenter();
});
google.maps.event.addDomListener(window, 'resize', function() {
map.setCenter(center);
});
}
google.maps.event.addDomListener(window, 'load', initialize());
函数初始化(){
var mylatng=newgoogle.maps.LatLng(,);
var中心=myLatlng;
var map=new google.maps.map(document.getElementById('map'){
缩放:11,
中心:myLatlng
});
var marker=new google.maps.marker({
职位:myLatlng,
地图:地图
});
google.maps.event.addDomListener(映射'idle',函数(){
center=map.getCenter();
});
google.maps.event.addDomListener(窗口,“调整大小”,函数(){
地图设置中心(中心);
});
}
google.maps.event.addDomListener(窗口'load',initialize());
然后我的问题是:
- 当我将我的窗口从全屏缩小到更小时:它工作(事件为 触发两次,不知道为什么)
- 当我再次使我的窗口全屏显示时:它不工作
- 当我把我的窗户变小或变大时,它什么也不做
google.maps.event.addDomListener(window, 'load', initialize());
google.maps.event.addDomListener(map, 'idle', function() {
center = map.getCenter();
});
它立即运行初始化,并在窗口加载事件运行时将其返回值用作执行的函数
这也是不正确的:
google.maps.event.addDomListener(window, 'load', initialize());
google.maps.event.addDomListener(map, 'idle', function() {
center = map.getCenter();
});
map
不是DOM元素,应该是google.maps.event.addListener
您的问题是,当映射的DOM元素更改大小时,您没有触发map
resize事件
google.maps.event.addDomListener(window, 'resize', function() {
google.maps.event.trigger(map, 'resize');
map.setCenter(center);
});
代码片段:
函数初始化(){
var mylatng=new google.maps.LatLng(40.7127837,-74.0059413);
var中心=myLatlng;
var map=new google.maps.map(document.getElementById('map'){
缩放:11,
中心:myLatlng
});
var marker=new google.maps.marker({
职位:myLatlng,
地图:地图
});
google.maps.event.addListener(映射'idle',函数(){
center=map.getCenter();
});
google.maps.event.addDomListener(窗口,“调整大小”,函数(){
google.maps.event.trigger(映射,'resize');
地图设置中心(中心);
});
}
google.maps.event.addDomListener(窗口“加载”,初始化)代码>
html,
身体,
#地图{
身高:100%;
宽度:100%;
边际:0px;
填充:0px
}
好吧,我按照你的指示做了,它很有效,所以除了谢谢之外,我没有别的话要说了!我忘了google.maps.event.trigger(映射,'resize')代码>。谢谢