使用实时GeoJSON数据流移动地图上的标志
<!DOCTYPE html>
<html>
<head>
<meta charset='utf-8' />
<title></title>
<meta name='viewport' content='initial-scale=1,maximum-scale=1,user-scalable=no' />
<script src='https://api.tiles.mapbox.com/mapbox-gl-js/v0.29.0/mapbox-gl.js'></script>
<link href='https://api.tiles.mapbox.com/mapbox-gl-js/v0.29.0/mapbox-gl.css' rel='stylesheet' />
<style>
body { margin:0; padding:0; }
#map { position:absolute; top:0; bottom:0; width:100%; }
</style>
</head>
<body>
<div id='map'></div>
<script>
mapboxgl.accessToken = '<your access token here>';
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/streets-v9',
zoom: 0
});
var url = 'https://wanderdrone.appspot.com/';
map.on('load', function () { /* 为load事件添加监听器 */
window.setInterval(function() { /* 实现该功能的关键:window.setInterval(callback,interval):每隔interval微秒执行一次callback函数 */
map.getSource('drone').setData(url); /* getSource():获取id为drone的source,使用setData()填充数据 */
}, 2000);
map.addSource('drone', { type: 'geojson', data: url });
map.addLayer({
"id": "drone",
"type": "symbol",
"source": "drone",
"layout": {
"icon-image": "rocket-15"
}
});
});
</script>
</body>
</html>
原文: https://www.mapbox.com/mapbox-gl-js/example/live-geojson/