1

マップに別のマーカーを表示しています。問題は、(特に Web サーバーをリセットしたときに) マップが正しく読み込まれ、ポイントの影が表示されることもありますが、マップ上にマーカーが表示されない/表示されないことがあります。ただし、後続の呼び出しでは、マーカーは適切に表示されます (おそらく cached ですが、確かではありません)。この動作は、すべてのブラウザ、つまり IE 6/7/8 、Chrome 、Firfox 3.5.6 で一貫しています。

以下に示す JavaScript は、マーカーを作成します。副業として、マーカーはさまざまなサイズになる可能性があるため、最初に幅とサイズを決定する必要があります (そうしないと、マーカーが変形して見えます)。

var imgTemp = new Image();
imgTemp.name = "img_" + i.toString();
imgTemp.src = groupMarkerUrl; //url to the actual image

point = new GLatLng(parseFloat(latitude), parseFloat(longitude));
var icon = new GIcon(G_DEFAULT_ICON);
icon.image = groupMarkerUrl;
icon.iconSize = new GSize(imgTemp.width, imgTemp.height); //Width x Height
icon.iconAnchor = new GPoint(14, 15);
icon.infoWindowAnchor = new GPoint(5, 1);
marker = new GMarker(point, icon);
map.setCenter(point, 13);

//build the information box
var htmlContent = "<div style=\"color:#000000\"><span style=\"font-weight:bold;\">" + title + "</span><br/>";
if (address != "") {
    htmlContent += address + " ";
}
if (zipcode != "") {
    htmlContent += "<br/>" + zipcode + ", ";
}
if (city != "") {
    htmlContent += city;
}
if (telephone != "") {
    htmlContent += "<br/>Tel : " + telephone;
}
if (fax != "") {
    htmlContent += "<br/>Fax : " + fax;
}

htmlContent += "</div>";

map.addOverlay(marker);

markerKeys.push(stamp);

markers[stamp] = marker;
//Add legends with group markers one for each group
if (null == legends[groupId]) {

    legends[groupId] = groupMarkerUrl;
    var nbsp = document.createTextNode("  ");
    var image = document.createElement("img");
    image.setAttribute("src", groupMarkerUrl);
    image.setAttribute("style", "margin-left:10px !important; border:\"0\";");

    pushpinPnlConsole.appendChild(nbsp);
    pushpinPnlConsole.appendChild(image);

    pushpinPnlConsole.setAttribute("style", "display:block");

}

eval("GEvent.addListener(markers[stamp] , \"click\", function(){markers['" + stamp + "'].openInfoWindowHtml(windowHtmls['" + stamp + "']);});");
windowHtmls[stamp] = htmlContent;
opticianTBody.appendChild(row);

ありがとう。

4

2 に答える 2

0

G_DEFAULT_ICONコンストラクタで使用している理由がわかりません。

カスタム アイコンを作成するには、次のようなものを使用します。

var icon = new GIcon();
icon.image = groupMarkerUrl;
//...

サーバーをリセットした後、 で参照されているイメージを読み込んでみましたがgroupMarkerUrl、正しく表示されますか?

于 2010-01-04T04:37:17.303 に答える