Google地图V3自定义标记未在IE中显示

Sea*_*ean 6 internet-explorer png google-maps ico google-maps-markers

我准备发布这个,然后我想出来了.但无论如何,我会为其他需要它的人发布它.学到的经验是,如果您希望它们在IE中工作,请使用.ico文件作为自定义标记图像.(作为旁注,它在Safari中仍然无法正常工作,但这是另一个问题.)


我有一段时间没有问题,使用自定义图片创建的Google Maps API V3标记不会在IE或Safari中显示.它在我测试的每个其他浏览器中都能正常工作,但我们的大多数用户仍然在IE上,所以我需要修复它.

这显然是一个已知问题(至少对Google而言),如Google支持主题中所示:http://www.google.com/support/forum/p/maps/thread?tid = 26db8fd040386548& hl = zh-CN

我想知道是否有其他人遇到过这个问题或知道解决方法吗?

这是我创建的一个简单测试页面中的js,它演示了这个bug:

var map;
var latLng = new google.maps.LatLng(41.342, -84.932);

$(function() {
    var myOptions = {
        zoom: 17,
        center: latLng,
        mapTypeId: google.maps.MapTypeId.HYBRID
    };
    map = new google.maps.Map(document.getElementById("map_canvas"), myOptions);

    var newMarker = new google.maps.Marker({
        map: map,
        position: latLng,
        icon: 'images/active_point.png'
    });
});
Run Code Online (Sandbox Code Playgroud)

修复:我将图像转换为active_point.ico,这对IE来说效果很好.出于某种原因,IE不喜欢我的.png.


经过一些研究后,似乎必须将Safari作为特殊情况处理,因为它似乎不适用于.ico或.png标记图像.我只得到.jpgs工作,这很烦人,因为他们不支持alpha通道.

Bry*_*ver 0

另一种选择是使用MarkerImage类。

icon: new google.maps.MarkerImage('images/active_point.png');
Run Code Online (Sandbox Code Playgroud)