Soy nuevo en Javascript y mapbox y quiero ayuda para resolver un problema (código a continuación). Estoy usando algunas coordenadas ({{coords}}) provenientes de un script de python y las estoy agregando como geojson al mapa (featureCollection). Quiero que estas coordenadas geojson se actualicen cada 2 segundos. He usado setData(), pero mis coordenadas no se actualizan en el mapa. ¿Puedes ayudar y dar algunos consejos? Muchísimas gracias.
var longLat = {{coords}}; var featureCollection = []; for(var itemIndex in longLat) { featureCollection.push({ "type": "Feature", "geometry": { "type": "Point", "coordinates": longLat[itemIndex] }, "properties": { "title": "boat", "icon": "ferry" } }); } map.on('load', function () { map.addSource('ship', { type: 'geojson', data: featureCollection }); map.addLayer({ "id": "points", "type": "symbol", "source": { "type": "geojson", "data": { "type": "FeatureCollection", "features": featureCollection } }, "layout": { "icon-image": "{icon}-15", "text-field": "{title}", "text-font": ["Open Sans Semibold", "Arial Unicode MS Bold"], "text-offset": [0, 0.6], "text-anchor": "top" } }); window.setInterval(function() { map.getSource('ship').setData(featureCollection); }, 2000); });No usó la fuente de 'envío' para la capa, por lo que actualizar los datos de origen ( map.getSource('ship').setData ) no activaría la reproducción.
Cambie la propiedad de origen de map.addLayer(...) , Pruebe map.addLayer({...,source:'ship'})