Маркер очистки Mapbox не работает

Я пытаюсь удалить маркер со своей карты, прежде чем добавить другой, но предложенный метод, хотя и не выдает ошибки, не удаляет мой маркер.

                $scope.geo.push({
                    type: 'Feature',
                    geometry: {
                        type: 'Point',
                        coordinates: [$scope.gig.lng, $scope.gig.lat]
                    },
                    properties: {
                        title: $scope.gig.venue,
                        description: $scope.gig.address + ' ' + $scope.gig.postcode,
                        'marker-size': 'medium',
                        'marker-color': '#676767'
                    }
                });

                /* show on map */

                var markerLayer = L.mapbox.markerLayer().setGeoJSON({
                    type: 'FeatureCollection',
                    features: $scope.geo
                }).addTo(map);

                map.setZoom(13);

                map.panTo($scope.geo[0].geometry.coordinates.reverse());
                markerLayer.eachLayer(function(m) {
                });

Согласно документации, я должен затем вызвать следующее, чтобы очистить все маркеры, но это ничего не делает.

L.mapbox.markerLayer().clearLayers();

Я делаю что-то неправильно? Если нет, есть ли ядерный способ сброса карты?


person Shealan    schedule 10.04.2014    source источник


Ответы (1)


L.mapbox.markerLayer().clearLayers();

L.mapbox.markerLayer() — это функция, которая создает новый слой маркеров: этот вызов создает новый слой маркеров и очищает маркеры в нем.

В вашем коде есть строки

           var markerLayer = L.mapbox.markerLayer().setGeoJSON({
                type: 'FeatureCollection',
                features: $scope.geo
           }).addTo(map);

Вы создаете новый маркерный слой с L.mapbox.markerLayer() и называете его переменной markerLayer. Итак, чтобы очистить маркеры в этом слое, вы должны позвонить:

markerLayer.clearLayers();
person tmcw    schedule 10.04.2014