Я создал полилинию с помощью реактивной листовки, я хочу показать направление на полилинии с помощью полилинедакоратора. Но я не знаю, как это сделать с помощью реактивной листовки. Я нашел несколько примеров с листовкой, но не с реактивной листовкой.
const polyline = [[51.505, -0.09], [51.51, -0.1], [51.51, -0.12]]
export default class VectorLayersExample extends Component<{}> {
render() {
return (
<Map center = {center} zoom = {13}>
<TileLayer
attribution='&copy <a
href = "http://osm.org/copyright">OpenStreetMap</a>
contributors'
url = "https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
/>
<Polyline color = "lime" positions = {polyline} />
</Map>
)
}
Может ли кто-нибудь сказать мне, как использовать polylinedacorators с приведенным выше кодом





Leaflet.PolylineDecorator можно интегрировать с React-Leaflet следующим образом:
а) установить пакеты leaflet и leaflet-polylinedecorator: npm i leaflet leaflet-polylinedecorator
б) после установки следующий компонент демонстрирует, как использовать компонент Polyline с L.polylineDecorator:
import React, { useRef, useEffect } from "react";
import { Map, TileLayer, Polyline, withLeaflet } from "react-leaflet";
import L from "leaflet";
import "leaflet-polylinedecorator";
const PolylineDecorator = withLeaflet(props => {
const polyRef = useRef();
useEffect(() => {
const polyline = polyRef.current.leafletElement; //get native Leaflet polyline
const { map } = polyRef.current.props.leaflet; //get native Leaflet map
L.polylineDecorator(polyline, {
patterns : props.patterns
}).addTo(map);
}, []);
return <Polyline ref = {polyRef} {...props} />;
});
Применение
function MyMap(props) {
const { center, zoom } = props;
const polyline = [[57, -19], [60, -12]];
const arrow = [
{
offset: "100%",
repeat: 0,
symbol: L.Symbol.arrowHead({
pixelSize: 15,
polygon: false,
pathOptions: { stroke: true }
})
}
];
return (
<Map center = {center} zoom = {zoom}>
<TileLayer url = "http://{s}.tile.osm.org/{z}/{x}/{y}.png" />
<PolylineDecorator patterns = {arrow} positions = {polyline} />
</Map>
);
}
Любые предложения о том, как это сделать, если вы не используете хуки? У меня с этим проблемы.
Я сделал отдельный вопрос по этому поводу: stackoverflow.com/questions/57143284/…. Любая помощь будет оценена по достоинству :)
Ошибка при попытке импорта: «withLeaflet» не экспортируется из «реагировать-листовка».
Любое решение для этого?