javascript - 谷歌地图标记在拖动后消失

标签 javascript jquery google-maps twitter-bootstrap google-maps-api-3

当我将标记移到 map 顶部并移出 View (见下图)时,它会变得非常不透明,这使得标记几乎不可见。

这个错误只发生在 Safari 中,我真的不知道是什么导致了这个。

Image showing marker while doing move

Image showing marker after move ended with opacity bug

如果您仔细观察第二张图片,您可以看到标记。

    var myMarker = new Array();

$(function () {

    latitude = 59.3294;
    longitude = 18.0686;


    var mapOptions = {
        center: new google.maps.LatLng(latitude, longitude),
        zoom: 4,
        disableDefaultUI: true,
        mapTypeControl: true,
        mapTypeControlOptions: {
            style: google.maps.MapTypeControlStyle.DROPDOWN_MENU
        }
    }

        map = new google.maps.Map(document.getElementById("map-canvas"),
        mapOptions);

        var id = 1;

        var image = {
        url: 'http://i.imgur.com/4yjea7s.png',
        // This marker is 20 pixels wide by 32 pixels tall.
        size: new google.maps.Size(33, 42),
        // The origin for this image is 0,0.
        origin: new google.maps.Point(0, 0),
        // The anchor for this image is the base of the flagpole at 0,32.
        anchor: new google.maps.Point(16, 42)
    };
            myMarker[id] = new google.maps.Marker({
                position: new google.maps.LatLng(57.721035,12.939819),
                map: map,
                animation: google.maps.Animation.DROP,
                draggable: false,
                icon: image
            });

            google.maps.event.addListener(myMarker[id], 'click', function() {
           var image = {
        url: 'http://i.imgur.com/1eHR1c3.png',
        // This marker is 20 pixels wide by 32 pixels tall.
        size: new google.maps.Size(108, 141),
        // The origin for this image is 0,0.
        origin: new google.maps.Point(0,0),
        // The anchor for this image is the base of the flagpole at 0,32.
        anchor: new google.maps.Point(54, 0)
      };
      myMarker[id].setDraggable(true);
      myMarker[id].setIcon(image);
          });

    });

jsfiddle: http://jsfiddle.net/S5T9b/1/

http://jsfiddle.net/S5T9b/1/embedded/result/

重现错误的步骤:

  1. 点击 map 上的标记
  2. 将标记拖到 map div 的最顶部并放下。

标记现在应该几乎看不见了,但如果您仔细观察,它仍然存在。 您仍然可以再次点击它并移动它 - 然后它再次变得可见。

这是我的编程问题还是 Safari 中的谷歌地图错误?

最佳答案

我很确定这是 Google map 的错误。但是我通过使用这个解决方案让它工作:

你必须指定一个 zIndex 并添加

optimized: false

每个 标记构造函数,例如。

var marker = new google.maps.Marker({
    position: markerLatLng,
    map: map,
    icon: resultIcon,
    optimized: false,
    zIndex: 5
})

复制自: https://stackoverflow.com/a/12061606/1679809

关于javascript - 谷歌地图标记在拖动后消失,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20402377/

相关文章:

android - 如何使用适用于 Android 的谷歌地图获取特化的医院详细信息?

javascript - 从 PHP 中的拆分文本中获取出现次数最多的前 5 个内容

javascript - 循环遍历 jquery data() 对象以获取键和值

javascript - 在表格中显示 KML 文件数据

jquery - 如何删除表格的所有行但保留标题

javascript - 在我的情况下主干验证方法不会触发

google-maps - 天然气的安全性

javascript - Hammerjs 无法在 IOS 中的 Chrome 或 Safari 上运行(使用 Vuejs 制作)

javascript - Jquery DOM .each 和 .remove() 问题

Javascript 时间函数无法正确显示