Google maps 谷歌地图标记不会在第一页加载时显示,但会在刷新时显示
我在地图上显示不同的标记,问题是有时(特别是当我重置web服务器时)地图正确加载,甚至显示点的阴影,但标记在地图上不显示/可见。但是在后续调用中,标记正确显示(可能缓存,但不确定)。这种行为在所有浏览器中都是一致的,即IE 6/7/8、Chrome、Firfox 3.5.6 下面显示的javascript创建了标记。在边线上,由于标记可以有不同的大小,我需要首先确定它们的宽度和大小(从其他方面看,它们看起来是变形的)Google maps 谷歌地图标记不会在第一页加载时显示,但会在刷新时显示,google-maps,google-maps-markers,Google Maps,Google Maps Markers,我在地图上显示不同的标记,问题是有时(特别是当我重置web服务器时)地图正确加载,甚至显示点的阴影,但标记在地图上不显示/可见。但是在后续调用中,标记正确显示(可能缓存,但不确定)。这种行为在所有浏览器中都是一致的,即IE 6/7/8、Chrome、Firfox 3.5.6 下面显示的javascript创建了标记。在边线上,由于标记可以有不同的大小,我需要首先确定它们的宽度和大小(从其他方面看,它们看起来是变形的) var imgTemp=newimage(); imgTemp.name=“i
var imgTemp=newimage();
imgTemp.name=“img_”+i.toString();
imgTemp.src=groupMarkerUrl//指向实际图像的url
点=新GLatLng(parseFloat(纬度)、parseFloat(经度));
var图标=新GIcon(G_默认图标);
icon.image=groupMarkerUrl;
icon.iconSize=新的GSize(imgTemp.width,imgTemp.height)//宽度x高度
icon.iconAnchor=新的GPoint(14,15);
icon.infoWindowAnchor=新的GPoint(5,1);
标记=新的GMarker(点、图标);
地图设定中心(点13);
//构建信息框
var htmlContent=“”+title+“
”;
如果(地址!=“”){
htmlContent+=地址+“”;
}
if(zipcode!=“”){
htmlContent+=“
”+zipcode+”,“;
}
如果(城市!=“”){
htmlContent+=城市;
}
如果(电话!=“”){
htmlContent+=”
电话:“+电话;
}
如果(传真!=“”){
htmlContent+=“
传真:”+传真;
}
htmlContent+=“”;
添加覆盖图(标记);
标记键。按(戳);
标记器[戳记]=标记器;
//添加带有组标记的图例,每组一个
if(null==图例[groupId]){
图例[groupId]=groupMarkerUrl;
var nbsp=document.createTextNode(“”);
var image=document.createElement(“img”);
setAttribute(“src”,groupMarkerUrl);
setAttribute(“样式”,“左边距:10px!重要;边框:\“0\”;”);
pushpinPnlConsole.appendChild(nbsp);
pushpinpnlcolsole.appendChild(图像);
设置属性(“样式”,“显示:块”);
}
eval(“GEvent.addListener(markers[stamp],\“click\”,function(){markers['“+stamp+”].openInfoWindowHtml(windowHtmls['“+stamp+”);});”;
windowHtmls[stamp]=htmlContent;
配镜者身体。附属物儿童(世界其他地区);
谢谢。不知道为什么要在构造函数中使用
G\u DEFAULT\u图标
要创建自定义图标,请使用以下命令:
var icon = new GIcon();
icon.image = groupMarkerUrl;
//...
重置服务器并尝试加载在groupMarkerUrl
中引用的图像后,是否正确看到它?不确定为什么要在构造函数中使用G\u DEFAULT\u图标
要创建自定义图标,请使用以下命令:
var icon = new GIcon();
icon.image = groupMarkerUrl;
//...
重置服务器并尝试加载groupMarkerUrl
中引用的映像后,您是否正确看到它?您的问题是
imgTemp.src = groupMarkerUrl; //url to the actual image
需要一些时间才能完成。由于在不等待加载图像的情况下使用imgTemp.width和imgTemp.height,因此这些值可能为零。API将以零大小绘制图标
在MSIE以外的浏览器中,您可以省略icon.iconSize(并且不复制mopoke提到的G_DEFAULT_图标的详细信息),如果在标记显示时图像已到达,则标记将默认为图像大小。在MSIE中,对于PNG图像,API使用AplphaImageLoader,如果未指定大小,则默认为零
解决方法是通过内联放置此代码,正确预加载图像,以便在onload事件之前执行
var imgTemp = new Image();
imgTemp.name = "img_" + i.toString();
imgTemp.src = groupMarkerUrl; //url to the actual image
并将图标创建代码放在onload函数中,以便在内联代码加载的所有图像完全获取后才能执行
imgTemp.src = groupMarkerUrl; //url to the actual image
需要一些时间才能完成。由于在不等待加载图像的情况下使用imgTemp.width和imgTemp.height,因此这些值可能为零。API将以零大小绘制图标
在MSIE以外的浏览器中,您可以省略icon.iconSize(并且不复制mopoke提到的G_DEFAULT_图标的详细信息),如果在标记显示时图像已到达,则标记将默认为图像大小。在MSIE中,对于PNG图像,API使用AplphaImageLoader,如果未指定大小,则默认为零
解决方法是通过内联放置此代码,正确预加载图像,以便在onload事件之前执行
var imgTemp = new Image();
imgTemp.name = "img_" + i.toString();
imgTemp.src = groupMarkerUrl; //url to the actual image
并将图标创建代码放在onload函数中,以便在内联代码加载的所有图像完全获取后才能执行。我已经更新了代码并仍在测试它。但我想如果我把它放在某种状态下,它会好得多。imgTemp.onLoad=function(){icon.iconSize=new GSize(imgTemp.width,imgTemp.height);}--使用循环确保图像已加载。var imgLoaded=假;虽然(imgLoaded==false){imgTemp.onLoad=function(){icon.iconSize=new GSize(imgTemp.width,imgTemp.height);imgLoaded=true;}}}我已经更新了代码并仍在测试它。但我想如果我把它放在某种状态下,它会好得多。imgTemp.onLoad=function(){icon.iconSize=new GSize(imgTemp.width,imgTemp.height);}--使用循环确保图像已加载。var imgLoaded=假;而(imgLoaded==false){imgTemp.onLoad=function(){icon.iconSize=new GSize(imgTemp.width,imgTemp.height);imgLoaded=true;}}