2011-10-26 21 views
56

Kullanıcı db'ye yeni bir kayıt girdiğinde, lat ve lon için 2 tane metin kutusu kullanıyorum.Google Maps API 3: Sağ Tıklama Koordinatlarını Alın

Google Haritalar'ın harika bir önizlemesi olan harika bir önizlemesine sahibim, şimdi yapmak istediğim, haritadaki tıklatılan kutulu metin kutularını dolduran bir sağ tıklama olayı eklemek.

Bu mümkün mü?

Olay dinleyicisini nasıl ekleyeceğinizi biliyorum ve API belgelerini inceledim, ancak bunu yapan hiçbir şey görmedim. Google’ın haritasındaki web sitesinde yapabileceğini biliyorum.

+0

i fromDivPixelToLatLng, ben kod yazarken neredeyse yarım gün geçirdi ve sadece .. Ben çok deneme ve Lol – guyfromfl

cevap

151
google.maps.event.addListener(map, "rightclick", function(event) { 
    var lat = event.latLng.lat(); 
    var lng = event.latLng.lng(); 
    // populate yor box/field with lat, lng 
    alert("Lat=" + lat + "; Lng=" + lng); 
}); 
+1

çalışırsa çözüm Repost edeceğiz iyi görünüyor ben bir şey buldum geri kontrol edildi, silindi, çünkü tam olarak bu. Teşekkürler!!! – guyfromfl

+0

Hangi işaretleyiciye tıklandığınızı nasıl edinebilirsiniz? onları bir dizide saklayarak mı? – AndreaCi

+1

Aynı kod ancak "tıklama" için "rightclick" değiştirerek sol tıklama için çalışır. Tüm etkinlikleri burada canlı olarak da görebilirsiniz: https://developers.google.com/maps/documentation/javascript/events – Seoman

3

Bir InfoWindow nesne (class documentation here) oluşturabilir ve buna harita üzerinde tıklanan yerin enlem ve boylam doldurmanız gerekir bir rightclick olay işleyicisi ekleyin.

function initMap() { 
 
    var myOptions = { 
 
     zoom: 6, 
 
     center: new google.maps.LatLng(-33.8688, 151.2093) 
 
    }, 
 
    map = new google.maps.Map(document.getElementById('map-canvas'), myOptions), 
 
    marker = new google.maps.Marker({ 
 
     map: map, 
 
    }), 
 
    infowindow = new google.maps.InfoWindow; 
 
    map.addListener('rightclick', function(e) { 
 
    map.setCenter(e.latLng); 
 
    marker.setPosition(e.latLng); 
 
    infowindow.setContent("Latitude: " + e.latLng.lat() + 
 
     "<br>" + "Longitude: " + e.latLng.lng()); 
 
    infowindow.open(map, marker); 
 
    }); 
 
}
html, 
 
body { 
 
    height: 100%; 
 
} 
 
#map-canvas { 
 
    height: 100%; 
 
    width: 100%; 
 
}
<script src="https://maps.googleapis.com/maps/api/js?key=AIzaSyAIPPUQ0PSWMjTsgvIWRRcJv3LGfRzGmnA&callback=initMap" async defer></script> 
 
<div id="map-canvas"></div>