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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何从angularJS中的谷歌地图标记获取动态位置相关的知识,希望对你有一定的参考价值。

在我的应用程序使用谷歌地图预定义的位置,但我需要位置名称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);

请帮我

答案

您可以使用“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");
    });     
}

以上是关于如何从angularJS中的谷歌地图标记获取动态位置的主要内容,如果未能解决你的问题,请参考以下文章

从嵌套的谷歌地图标记数组中获取标记位置

如何从 ionic 2 中的谷歌地图获取纬度和经度?

颤动的谷歌地图无法显示来自firebase的标记

如何在集群中的谷歌地图标记上创建点击事件?

如何在android中的谷歌地图上绘制路线并计算多个标记之间的距离

如何在不使用 Xcode、iPhone 中的谷歌地图的情况下从地址获取纬度和经度