İşte JSFiddle Demosu . Google Maps API V3'te, sürüklenebilir bir işaretçinin enlem ve boylamını izlemek oldukça kolaydır. Temel olarak aşağıdaki HTML ve CSS ile başlayalım.
<div id='map_canvas'></div>
<div id="current">Nothing yet...</div>
#map_canvas{
width: 400px;
height: 300px;
}
#current{
padding-top: 25px;
}
İşte google haritasını başlatan ilk JavaScript'imiz. Sürüklemek istediğimiz bir işaretleyici oluşturuyoruz ve bunun sürüklenebilir özelliğini true olarak ayarlıyoruz. Elbette, yüklenebilmesi için pencerenizin bir yükleme olayına eklenmesi gerektiğini unutmayın, ancak koda geçeceğim:
var map = new google.maps.Map(document.getElementById('map_canvas'), {
zoom: 1,
center: new google.maps.LatLng(35.137879, -82.836914),
mapTypeId: google.maps.MapTypeId.ROADMAP
});
var myMarker = new google.maps.Marker({
position: new google.maps.LatLng(47.651968, 9.478485),
draggable: true
});
Burada dragstart
, sürüklemenin başlangıcını izlemek ve dragend
işaretleyicinin sürüklenmesini bıraktığında kaymak için iki olay ekliyoruz ve bunu kullanma şeklimiz google.maps.event.addListener
. Burada yaptığımız şey current
, işaretçi sürüklenirken div'in içeriğini ayarlamak ve ardından sürükleme durduğunda işaretleyicinin enlem ve boylamını ayarlamaktır. Google fare olayının, olay tetiklendiğinde "google.maps.LatLng" nesnesini döndüren "latlng" özellik adı vardır. Yani, burada yaptığımız şey, temelde bu dinleyici için, tarafından döndürülen google.maps.event.addListener
ve latLng
dragend'in mevcut konumunu çıkarmak için özelliği alan tanımlayıcıyı kullanmaktır. Sürükleme durduğunda Lat Lng'yi aldığımızda, div'inizde göstereceğiz current
:
google.maps.event.addListener(myMarker, 'dragend', function(evt){
document.getElementById('current').innerHTML = '<p>Marker dropped: Current Lat: ' + evt.latLng.lat().toFixed(3) + ' Current Lng: ' + evt.latLng.lng().toFixed(3) + '</p>';
});
google.maps.event.addListener(myMarker, 'dragstart', function(evt){
document.getElementById('current').innerHTML = '<p>Currently dragging marker...</p>';
});
Son olarak, işaretçimizi ortalayacağız ve haritada göstereceğiz:
map.setCenter(myMarker.position);
myMarker.setMap(map);
Cevabımla ilgili herhangi bir sorunuz olursa bana bildirin.