Необходимо удалить предыдущий маркер с карты, не обновляя карту Google - PullRequest
0 голосов
/ 28 ноября 2018

Мне нужно удалить ранее добавленный маркер, без обновления экрана, перепробовал много кодов за последние 2 дня, но не смог сделать.Этот вопрос может звучать как дубликат, да, но в моем случае я не могу исправить ошибку, любые предложения и помощь будут очень полезны.Я приложил свой код ниже. Спасибо заранее.PS: я новичок в Google Maps (проект построен на C # коде, javascript, asp.net mvc, ms sql db)

 var map = new GMaps({
        el: '#map',
        lat: 11.0168,
        lng: 76.9558
    });
    geolocate();
    function geolocate() {
        $.ajax({
            url: '@Url.Action("loadmap", "LiveTracking")',
            type: "Get",
            dataType: 'json',
            success: function (results) {
                debugger;
                var result = JSON.parse(results);

                    var lat = parseFloat(result[0].Latitude)
                    var lng = parseFloat(result[0].Longitude)
                    var VehicleId = result[0].VehicleID;
                    var Speed = result[0].Speed;
                    var abc = ("Vehicle:" + VehicleId + " , " + "Speed:" + Speed )
                    map.addMarker({
                        lat: lat,
                        lng: lng,
                        icon: {
                            url: '/Content/Images/zaz.png',
                            scaledSize: new google.maps.Size(65, 65),
                        },
                        title: 'vehicle',
                        infoWindow: {
                            content: abc
                        },
                    });
               // }
            }
        })
    }


Most commonly suggested method was to add an marker[] and push in it and call the delete function ,which I tried but can't able to achieve it.

Надеюсь, что кто-нибудь может мне помочь, заранее спасибо

Ответы [ 2 ]

0 голосов
/ 28 ноября 2018
<body onload="googleMap()">
    <div id="map_canvas" style="height: 300px; width: 300px"></div>
    <a onclick="removeMarker()">Remove marker</a>
    <script type="text/javascript">

          var map, myLatLng, marker;

          function googleMap() {
            var mapOptions = {
              center: new google.maps.LatLng(52.645813,-0.382000),
              zoom: 15,
              scrollwheel: false,
              mapTypeId: google.maps.MapTypeId.ROADMAP
            };

            map = new google.maps.Map(document.getElementById("map_canvas"), mapOptions);
            myLatLng = new google.maps.LatLng(52.645945,-0.382837);
            marker = new google.maps.Marker({ position: myLatLng, map: map });
         };

         function removeMarker() {
            marker.setMap(null);
         };

    </script>
</body>
0 голосов
/ 28 ноября 2018

Вы смотрели эту документацию?

https://developers.google.com/maps/documentation/javascript/examples/marker-remove

В нем есть clearMarkers () перед установкой пустого массива.

function deleteMarkers() {
    clearMarkers();
    markers = [];
  }

function clearMarkers() {
    setMapOnAll(null);
  }

function setMapOnAll(map) {
    for (var i = 0; i < markers.length; i++) {
      markers[i].setMap(map);
    }
  }
...