To be more precise, what I try to accomplish is that while I Drag a Google Map there\'s a Google Maps Marker that stays fixed
Here is how to do it as smooth as possible, and you can also get latlng at the same time.
var map;
var marker;
var myInterval = setInterval(move, 1000 / 60);
function handleEvent(event) {
var latlng = map.getCenter();
document.getElementById('lat').value = latlng.lat();
document.getElementById('lng').value = latlng.lng();
}
// Initialize and add the map
function initMap() {
var uluru = { lat: -25.344, lng: 131.036 };
map = new google.maps.Map(
document.getElementById('map'), { zoom: 4, center: uluru });
marker = new google.maps.Marker({
position: uluru,
map: map,
animation: google.maps.Animation.DROP
});
map.addListener('center_changed', handleEvent);
document.getElementById('lat').value = "-25.344";
document.getElementById('lng').value = "131.036";
}
function move(){
try {
var latlngMAP = map.getCenter();
var latlngMARKER = marker.getPosition();
tempLAT = lerp (latlngMARKER.lat(), latlngMAP.lat(), 0.1);
tempLNG = lerp (latlngMARKER.lng(), latlngMAP.lng(), 0.1);
var latlng = { lat: tempLAT, lng: tempLNG };
marker.setPosition(latlng);
} catch{
}
}
function lerp(start, end, amt) {
return (1-amt)*start+amt*end
}