我正在尝试使用 Google map 作为背景,并带有固定的叠加层。 Have a look-see .
您可以看到问题 - 在加载时,文本不可读。覆盖层由 Google 的 JS 加载。如何在叠加层加载之前隐藏 map ? (或者更好的解决方案?)
最佳答案
实际上,您可以使用 JavaScript 来确保 map 仅在加载叠加层时显示:
document.observe('dom:loaded', function()
{
if (GBrowserIsCompatible()) {
var overlaySrc = 'img/contact_map_overlay.png';
var preloadOverlay = new Image();
preloadOverlay.onload = function() {
var map = new GMap2(document.getElementById("map_canvas"));
map.setCenter(new GLatLng(-33.82568, 151.2180955505371), 14, G_PHYSICAL_MAP);
var mapTypeControl = new GMapTypeControl();
var topRight = new GControlPosition(G_ANCHOR_TOP_RIGHT, new GSize(80, 250));
map.addControl(new GSmallMapControl(), topRight);
var mapTarget = new GScreenOverlay(overlaySrc, new GScreenPoint(0.0, 0.0, 'fraction', 'fraction'), // screenXY
new GScreenPoint(0, 0), // overlayXY
new GScreenSize(1, 1, 'fraction', 'fraction') // size on screen
);
map.addOverlay(mapTarget);
var pin = new GIcon(G_DEFAULT_ICON);
pin.image = "img/pin.png";
pin.shadow = "no-shadow";
pin.iconSize = new GSize(34, 43);
markerOptions = {
icon: pin
};
var marker = new GMarker(new GLatLng(-33.82568, 151.240635), markerOptions);
map.addOverlay(marker);
}
preloadOverlay.src = overlaySrc;
}
});
Google 只是显示来自服务器的图像,因此在显示 map 之前将其加载到缓存中将解决您的问题。
关于javascript - 预加载 Google map 叠加层,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/3582380/