2012-07-04 27 views
5

api bản đồ google không hỗ trợ sự kiện chạmTôi có thể liên kết các sự kiện chạm cho điểm đánh dấu trong bản đồ google bằng cách nào?

nhưng bây giờ tôi cần thực hiện một số điều trên bản đồ và điểm đánh dấu, chẳng hạn như gõ nhẹ vào bản đồ, nhấn vào điểm đánh dấu, kéo điểm đánh dấu.

điều tôi muốn làm giống với ứng dụng bản đồ google cho iOS

Trả lời

1

Trong liên kết này, bạn có thể nhận được nhiều ví dụ. https://google-developers.appspot.com/maps/documentation/javascript/examples/

Gần đây tôi đã làm việc trên bản đồ google và bên dưới là mã nơi bạn có thể kéo và thả điểm đánh dấu và hoạt động hoàn hảo trong trình duyệt web di động.

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(); 
     } 
14

Tôi đã triển khai các sự kiện chạm tương tự như shreedhar, nhưng sử dụng sự kiện "mousedown". Tôi nhận thấy rằng "nhấp chuột" không được kích hoạt trên thiết bị di động khi sử dụng API Google Maps trong chế độ xem web (ví dụ: PhoneGap), nhưng sự kiện "mousedown" được kích hoạt bằng một lần nhấn trên thiết bị di động hoặc nhấp chuột trên web.

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

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

Ngoài ra, hãy chắc chắn chỉ xác định biến một infowindow trên trang của bạn, và tái sử dụng nó cho tất cả các dấu hiệu của bạn, vì vậy tại sao tôi định nghĩa infowindow như một window.infowindow biến "toàn cầu".

Các vấn đề liên quan