leaflet图标跟随地图放大缩小
时间: 2023-07-23 18:22:54 浏览: 525
要让 Leaflet 图标跟随地图放大缩小,可以使用 Leaflet 的 `L.Icon` 类来创建自定义的图标,并设置 `iconSize`、`iconAnchor` 和 `popupAnchor` 等属性来控制图标的大小和位置。在地图缩放时,可以监听 `zoomend` 事件,然后根据当前地图缩放级别来更新图标的大小和位置,使其保持相对位置和比例不变。以下是一个示例代码:
```javascript
// 创建自定义图标
var myIcon = L.icon({
iconUrl: 'my-icon.png',
iconSize: [32, 32],
iconAnchor: [16, 16],
popupAnchor: [0, -16]
});
// 创建标记并设置图标
var marker = L.marker([51.5, -0.09], {icon: myIcon}).addTo(map);
// 监听缩放事件并更新图标大小和位置
map.on('zoomend', function() {
var zoom = map.getZoom();
var size = [32 * zoom, 32 * zoom];
var anchor = [16 * zoom, 16 * zoom];
var popupAnchor = [0, -16 * zoom];
myIcon.options.iconSize = size;
myIcon.options.iconAnchor = anchor;
myIcon.options.popupAnchor = popupAnchor;
marker.setIcon(myIcon);
});
```
这样就可以让 Leaflet 图标跟随地图放大缩小了。
阅读全文