Я покопался, и вот что я нашел. Если вы исследуете объект realtime
, маркер и след являются свойствами этого объекта в соответствии со свойством _featureLayers
. Вам нужно определить id
этих слоев как часть properties
Geo JSON:
var trail = {
type: 'Feature',
properties: {
id: 'trail'
},
geometry: {
type: 'LineString',
coordinates: []
}
}
Как видите, я изменил 1
на trail
. Теперь вы можете захватить свой след и удалить его, позвонив по номеру realtime.getLayer('trail').remove()
. Мне не очень повезло с работой removeEventListener
, но в реальном времени есть функция stop
, которая, похоже, работает. Это будет выглядеть так:
var i = 0;
realtime.on('update', function() {
console.log('i', i)
i++
map.fitBounds(realtime.getBounds(), {maxZoom: 3});
if (i === 3) {
trailCoords = [];
realtime.stop();
realtime.getLayer('trail').remove()
}
});
По какой-то причине имя самого маркера id
по умолчанию не определено. Вы могли бы вызвать realtime.getLayer('undefined').remove()
, чтобы удалить его, но это очень хакерский метод и предполагает, что других слоев с идентификатором undefined
не существует. Может быть какой-то способ определить это id
для производителя по умолчанию, но я оставлю это вам.