mapboxgl 添加一个marker 实现高亮闪烁效果,给出完整代码
时间: 2024-01-18 18:04:48 浏览: 177
以下是一个使用MapboxGL添加一个marker并实现高亮闪烁效果的完整代码示例:
```html
<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8" />
<title>MapboxGL Marker Highlight Animation</title>
<meta name="viewport" content="initial-scale=1,maximum-scale=1,user-scalable=no" />
<script src="https://api.mapbox.com/mapbox-gl-js/v2.5.1/mapbox-gl.js"></script>
<link href="https://api.mapbox.com/mapbox-gl-js/v2.5.1/mapbox-gl.css" rel="stylesheet" />
<style>
body { margin: 0; padding: 0; }
#map { position: absolute; top: 0; bottom: 0; width: 100%; }
.highlight-animation {
animation: highlight 1s infinite;
}
@keyframes highlight {
0% {
opacity: 1;
transform: scale(1);
}
50% {
opacity: 0.5;
transform: scale(1.5);
}
100% {
opacity: 1;
transform: scale(1);
}
}
</style>
</head>
<body>
<div id="map"></div>
<script>
mapboxgl.accessToken = 'YOUR_MAPBOX_ACCESS_TOKEN';
var lng = -122.4194; // 经度
var lat = 37.7749; // 纬度
var zoomLevel = 12; // 缩放级别
// 创建地图实例
var map = new mapboxgl.Map({
container: 'map',
style: 'mapbox://styles/mapbox/streets-v11',
center: [lng, lat],
zoom: zoomLevel
});
// 创建一个图层,并向地图添加一个marker
var marker = new mapboxgl.Marker({
element: createMarkerElement()
})
.setLngLat([lng, lat])
.addTo(map);
// 为标记元素添加动画类
marker.getElement().classList.add('highlight-animation');
// 创建标记元素及样式
function createMarkerElement() {
var el = document.createElement('div');
el.className = 'marker';
el.style.backgroundImage = 'url(https://example.com/your-marker-icon.png)'; // 替换为您自己的标记图标URL
el.style.width = '40px';
el.style.height = '40px';
el.style.backgroundRepeat = 'no-repeat';
el.style.backgroundSize = 'cover';
return el;
}
</script>
</body>
</html>
```
请确保将YOUR_MAPBOX_ACCESS_TOKEN替换为您自己的Mapbox访问令牌,并将`https://example.com/your-marker-icon.png`替换为您自己的标记图标的URL。
通过上述代码,您将能够在MapboxGL地图上添加一个marker,并为其添加高亮闪烁的动画效果。根据您的需求,您可以调整地图的样式、标记的位置和动画效果。
阅读全文