通过它更新谷歌地图标记位置's的ID

Update a Google Map Marker position by it's ID

本文关键字:ID 位置 更新 谷歌 图标 地图      更新时间:2023-09-26

我正在创建谷歌地图标记,并为它们分配一个ID,如下所示:

var marker = new google.maps.Marker({
             position: new google.maps.LatLng(data.Latitude, data.Longitude),
             map: map,
             id: data.ID
});

这会导致标记出现在地图上,但我也想在以后更新标记的位置,我如何通过分配给它的ID获取标记,然后更新它的位置?

我知道你可以用setPosition(latlng:latlng(在Google API中的标记对象上更新位置,但我如何通过它的ID获取标记?

试试这个代码

 <script  src="https://maps.googleapis.com/maps/api/js?key=YOUR-API-KEY&libraries=places" type="text/javascript"></script>
    <script>
        $(document).ready(function () {

            var long = $('#ContentPlaceHolder1_hidlog').val();
            var lati = $('#ContentPlaceHolder1_hidlat').val();
            var mapCenter = new google.maps.LatLng(lati, long);
                var map;
                map_initialize();
                function map_initialize() {

                    var googleMapOptions =
                    {
                        center: mapCenter,
                        zoom: 18,
                        panControl: true,
                        zoomControl: true,
                        zoomControlOptions: {
                            style: google.maps.ZoomControlStyle.SMALL
                        },
                        scaleControl: true,
                        mapTypeId: google.maps.MapTypeId.ROADMAP
                    };
                    var marker = new google.maps.Marker({
                        position: mapCenter,
                        title: "Event Map"
                    });
                    map = new google.maps.Map(document.getElementById("google_map"), googleMapOptions);
                    marker.setMap(map);
                }
                var getCen = map.getCenter();
                google.maps.event.addDomListener(window, 'resize', function () {
                    map.setCenter(getCen);
                });
                google.maps.event.addDomListener(window, 'load', map_initialize());
                google.maps.event.addDomListener(window, "resize", resizingMap());
                $('#showmap').on('show.bs.modal', function () {
                    resizeMap();
                })
                function resizeMap() {
                    if (typeof map == "undefined") return;
                    setTimeout(function () { resizingMap(); }, 400);
                }
                function resizingMap() {
                    if (typeof map == "undefined") return;
                    var center = map.getCenter();
                    google.maps.event.trigger(map, "resize");
                    map.setCenter(center);
                }
            });
    </script>