Mapbox清除标记不起作用

时间:2014-04-10 12:17:00

标签: javascript 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();

我做错了吗?如果没有重置地图的核方式?

1 个答案:

答案 0 :(得分: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();