Is there a way to Fix a Google Maps Marker to the Center of its Map always?

前端 未结 7 1348
野趣味
野趣味 2020-12-01 00:21

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

7条回答
  •  离开以前
    2020-12-01 00:50

    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
        }
    

提交回复
热议问题