leaflet - 如何在缩放时反转传单折线箭头自动调整大小?
问题描述
我希望我的传单折线箭头在放大时增加它的大小并在缩小时减小它。但按照它的模式,发生的事情恰恰相反。有办法扭转它吗?这里有一个完整的例子:https ://github.com/bbecquet/Leaflet.PolylineDecorator
function addLine(map, iniCoord, endCoord, desc, color, lineWeight, onClick) {
var polyline = L.polyline([coordIni, coordFim], {
color: color,
offset: 0,
weight: lineWeight
});
polyline.addTo(elements);
L.polylineDecorator(polyline, {
patterns: [{
offset: '100%',
symbol: L.Symbol.arrowHead({
offset: 20,
iconSize: 3,
polygon: false,
pathOptions: {
stroke: true,
color: color,
weight: 3
}
})
}]
}).addTo(elements);
polyline.on('click', onClick);
}
解决方案
我找到了解决方案:
var map = L.map('map');
**var arrowSize = 30;**
L.tileLayer.provider('OpenStreetMap.Mapnik').addTo(map);
elements = L.layerGroup().addTo(map);
map.on('zoomend', function() {
var currentZoom = map.getZoom();
**arrowSize = 30/((20 - currentZoom )*2);**
elements.clearLayers();
});
function addLine(map, iniCoord, endCoord, desc, color, onClick) {
var polyline = L.polyline([coordIni, coordFim], {
color: color,
offset: 0,
weight: 1.5
});
polyline.addTo(elements);
L.polylineDecorator(polyline, {
patterns: [{
offset: '100%',
symbol: L.Symbol.arrowHead({
offset: 20,
**pixelSize: arrowSize,**
polygon: false,
pathOptions: {
stroke: true,
color: color,
}
})
}]
}).addTo(elements);
polyline.on('click', onClick);
}
推荐阅读
- ubuntu - 使用 afl-gcc 和 afl-g++ 编译器编译 Coreutils-5.0 时出现编译错误
- android - Flutter - 处理设备方向:布局旋转但下一个自动返回到纵向
- java - 有没有办法通过组创建来给主题?
- python - 集合问题中的 Python 列表减法或 random.choice()
- android - Xamarin Device.StartTimer 无法正常工作
- javascript - Typescript 无法将模块加载到 HTML
- r - 如何在 R 中编写循环以使用二进制对数分解变量值?
- javascript - 向 React 应用程序添加新的 DishdetailComponent 以显示特定菜肴的详细信息
- android-studio - javax.net.ssl.SSLException:无法解析 urlconnection.connect() 中的 TLS 数据包标头
- c# - EF Core 多对多关系上的 LINQ 查询