如何从angularJS中的谷歌地图标记获取动态位置

问题描述 投票:-1回答:1

在我的应用程序使用谷歌地图预定义的位置,但我需要位置名称lat和lng从谷歌地图动态移动谷歌上的标记

我使用angularJs 1.5

我的代码是这样的

$scope.Markers = 
            {

                "lat": '12.976154',
                "lng": '77.445760',

            }

            //Setting the Map options.
            $scope.MapOptions = {
                center: new google.maps.LatLng($scope.Markers.lat, $scope.Markers.lng),
                zoom: 7,
                rotation: 45,
                mapTypeId: google.maps.MapTypeId.ROADMAP
            };

            //Initializing the InfoWindow, Map and LatLngBounds objects.
            $scope.InfoWindow = new google.maps.InfoWindow();
            $scope.Latlngbounds = new google.maps.LatLngBounds();
            $scope.Map = new google.maps.Map(document.getElementById("dvMap"), $scope.MapOptions);

            //Looping through the Array and adding Markers.
            // for (var i = 0; i < $scope.Markers.length; i++) {
            //     var data = $scope.Markers[i];
                var myLatlng = new google.maps.LatLng($scope.Markers.lat, $scope.Markers.lng);

                //Initializing the Marker object.
                var marker = new google.maps.Marker({
                    position: myLatlng,
                    map: $scope.Map,
                    title: $scope.Markers.title
                });

                //Adding InfoWindow to the Marker.
                 (function (marker, data) {
                    google.maps.event.addListener(marker, "click", function (e) {

                        // $scope.InfoWindow.setContent("<div style = 'width:100px;min-height:40px'>" + data.description + "</div>");
                        // $scope.InfoWindow.open($scope.Map, marker);
                    });
                })(marker, $scope.Markers);
                //Plotting the Marker on the Map.
                $scope.Latlngbounds.extend(marker.position);
            // }

            //Adjusting the Map for best display.
            $scope.Map.setCenter($scope.Latlngbounds.getCenter());
            $scope.Map.fitBounds ($scope.Latlngbounds);

请帮我

angularjs maps
1个回答
0
投票

您可以使用“google.maps.event.addListener”方法将drag&dragend事件附加到Google地图标记。

function getMarkerCoords(markerobj){
    google.maps.event.addListener(markerobj, 'dragend', function(evt){
        infoWindow.setOptions({
            content: '<p>Marker Current Lat: ' + evt.latLng.lat().toFixed(3) + ' Current Lng: ' + evt.latLng.lng().toFixed(3) + '</p>'
        });
        infoWindow.open(map, markerobj);
    });

    google.maps.event.addListener(markerobj, 'drag', function(evt){
        console.log("marker is being dragged");
    });     
}
© www.soinside.com 2019 - 2024. All rights reserved.