leaflet-polylinedecorator与leaflet-rotatedmarker包冲突解决

同时引入两个包,发现rotatedmarker设置角度发生了问题。

原理:

leaflet-polylinedecorator 旋转 x 度, leaflet-rotatedmarker 旋转另外 x 度,旋转了两次。
可以通过仅使用 leaflet-polylinedecorator 并从项目中删除 leaflet-rotatedmarker 包来修复。此包具有 rotatedmarker 的所有功能。

问题在这里:

https://github.com/bbecquet/Leaflet.PolylineDecorator/issues/94

使用leaflet-polylinedecorator绘制带箭头路线,可按以下步骤操作: ### 加载leaflet地图并引用插件 首先要加载leaflet地图,同时引用leaflet-polylinedecorator插件。 ### 绘制基础路线 使用`L.polyline`绘制基础路线,可设置路线的颜色、是否可拖动、虚线样式等属性。示例代码如下: ```javascript let tempLatLngArr = []; // 假设这是路线的经纬度数组 let polyline = L.polyline(tempLatLngArr, { color: '#368fe9', draggable: 'true', dashArray: '15', className: 'testxuxian', opacity: 0.5 }).bindTooltip(item.name, { permanent: 'true', opacity: 1, direction: 'top', offset: [0, 0], className: 'leaflet-label' }).openTooltip(); ``` 上述代码中,`tempLatLngArr`是路线的经纬度数组,可根据实际情况修改。通过`L.polyline`创建路线对象,并设置了颜色、是否可拖动、虚线样式等属性,还绑定了一个提示框。 ### 添加箭头装饰 使用`L.polylineDecorator`为路线添加箭头装饰,可设置箭头的位置、大小、颜色等属性。示例代码如下: ```javascript let arrowHead = L.polylineDecorator(polyline, { patterns: [ { offset: '100%', endOffset: '100%', repeat: 10, symbol: L.Symbol.arrowHead({ pixelSize: 20, polygon: false, pathOptions: { stroke: true, weight: 3, color: '#368fe9' } }) } ] }); ``` 上述代码中,`L.polylineDecorator`接收路线对象`polyline`和一个模式数组。模式数组中每个元素定义了箭头的样式和位置,这里设置了箭头的偏移量、重复间隔、大小、颜色等属性。 ### 将箭头装饰添加到地图 将创建好的箭头装饰添加到地图上,并可将其存储在一个数组中以便后续清理。示例代码如下: ```javascript this.map.addLayer(arrowHead); this.clearjt.push(arrowHead); ``` 上述代码将箭头装饰添加到地图上,并将其存储在`this.clearjt`数组中。 ### 另一个示例 以下是另一个使用示例,设置了不同的路线和箭头样式: ```javascript let map = L.map('map').setView([41.80, 123.43], 10); L.tileLayer('https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png', { attribution: 'Map data © <a href="https://www.openstreetmap.org/">OpenStreetMap</a> contributors', maxZoom: 18 }).addTo(map); let arrow = L.polyline([[41.80, 123.43], [41.07, 123.00]], {opacity: 1, color: 'firebrick'}).bindPopup('I am red:').addTo(map); let arrowHead = L.polylineDecorator(arrow, { patterns: [ { offset: '30%', endOffset: '90%', repeat: 1000, symbol: L.Symbol.arrowHead({ pixelSize: 10, polygon: false, pathOptions: { stroke: true, weight: 2, color: 'firebrick' } }) } ] }).addTo(map); ``` 上述代码创建了一个地图,添加了一个红色的路线,并为其添加了箭头装饰,箭头的位置和样式可根据实际需求调整。
评论
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
红包 添加红包
表情包 插入表情
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值