Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/google-maps/4.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Google maps 谷歌地图标记不会在第一页加载时显示,但会在刷新时显示_Google Maps_Google Maps Markers - Fatal编程技术网

Google maps 谷歌地图标记不会在第一页加载时显示,但会在刷新时显示

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

我在地图上显示不同的标记,问题是有时(特别是当我重置web服务器时)地图正确加载,甚至显示点的阴影,但标记在地图上不显示/可见。但是在后续调用中,标记正确显示(可能缓存,但不确定)。这种行为在所有浏览器中都是一致的,即IE 6/7/8、Chrome、Firfox 3.5.6

下面显示的javascript创建了标记。在边线上,由于标记可以有不同的大小,我需要首先确定它们的宽度和大小(从其他方面看,它们看起来是变形的)

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;}}