Javascript 一张桌子上有多个谷歌地图的问题
我有一个html表,其中包含10个GoogleMap容器 下面是创建map对象的js函数 函数获取映射的lat和lng+要插入映射的div元素Javascript 一张桌子上有多个谷歌地图的问题,javascript,google-maps,google-maps-api-3,google-maps-markers,Javascript,Google Maps,Google Maps Api 3,Google Maps Markers,我有一个html表,其中包含10个GoogleMap容器 下面是创建map对象的js函数 函数获取映射的lat和lng+要插入映射的div元素 function GetMap(lat,lng,number) { var show_in=document.getElementsByClassName("map_conteiner")[number]; var mapOptions = { center
function GetMap(lat,lng,number)
{
var show_in=document.getElementsByClassName("map_conteiner")[number];
var mapOptions = {
center: new google.maps.LatLng(lat, lng),
zoom: 8,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(show_in,
mapOptions);
var marker = new google.maps.Marker({
position:new google.maps.LatLng(lat,lng),
map: map,
title:"Hotel"
});
$(show_in).fadeIn();
}
问题在于,只有在第一次调用此函数时,映射才会正确显示
(无论我从哪个部门开始)
第一次调用后,此函数将始终显示扭曲的贴图(如附件中所示)
您应该
在完成$.fadeIn()的-callback中触发调整映射大小的-event
此外,最好只为每个map\u contenner
创建一个maps实例,并且在后续调用GetMap
时,只为标记设置现有映射的新中心和新的位置。如果我错了,请纠正我,但每次该方法创建新的google.maps.map 2时,我都会为每个map\u上下文使用每个1实例map\u上下文。您可以更具体一点吗?如何在$.fadeIn()1的完整回调中触发贴图的调整大小事件。是的,每个map_contenner只有一个map实例,但是每次调用GetMap时都会创建一个新的map实例,并放弃以前创建的实例(不必要的操作会降低应用程序的速度并增加map负载,当您经常这样做并使用maps键时,这将是一个重要的副作用)2<代码>$(show_in).fadeIn(函数(){google.maps.event.trigger(映射,'resize');})代码>