我怎么可以绑定在谷歌地图标记的触摸事件?(how can i bind touch events f

2019-06-26 00:38发布

谷歌地图API不支持触摸事件

但现在我需要做的地图和标记,在某些事情,如长按地图,点击标记,拖动标记。

什么我想要做的是一样的谷歌地图客户端适用于iOS

Answer 1:

我实现了触摸事件的方式shreedhar相同,但使用“鼠标按下”事件。 我发现,“点击”是不是在移动设备上使用网页视图(即PhoneGap的)的谷歌地图API的时候触发,但“鼠标按下”事件是由在网络上移动或点击水龙头触发。

window.infowindow = new google.maps.InfoWindow({
   content: 'content'
});

google.maps.event.addListener(marker, 'mousedown', function(){
   window.infowindow.open(marker.get('map'), marker);
});

此外,请务必只在网页上定义一个信息窗口变量,并重新使用它为您的所有标记,因此为什么我定义信息窗口为“全局”变量window.infowindow。



Answer 2:

在这个环节,你可以得到很多例子。 https://google-developers.appspot.com/maps/documentation/javascript/examples/

最近我工作的谷歌地图,以下是代码,你可以拖放的标志,和它的作品完美的移动网络浏览器。

gmap : function(lat,lng){
            var stockholm = new google.maps.LatLng(lat, lng);
            var parliament = new google.maps.LatLng(lat, lng);
            var marker;
            var map;
            function initialize() {
                var mapOptions = {
                    zoom: 13,
                    disableDefaultUI: true,
                    mapTypeId: google.maps.MapTypeId.ROADMAP,
                    center: stockholm
                };
                map = new google.maps.Map(document.getElementById("gmapDiv"),mapOptions);
                marker = new google.maps.Marker({
                    map:map,
                    draggable:true,
                    animation: google.maps.Animation.DROP,
                    position: parliament
                });
               var infowindow = new google.maps.InfoWindow({
                   content: 'content'
               });
                google.maps.event.addListener(marker, 'click', function(){
                  infowindow.open(marker.get('map'), marker);
                  });
            }
            initialize();
        }


文章来源: how can i bind touch events for a marker in google maps?