如何在 React 传单中使用 polylinedacorator
How to use polylinedacorator with react leaflet
我已经使用 react-leaflet 创建了折线,我想使用 polylinedacorator.But 在折线上显示方向我不知道如何使用 react-leaflet 来实现。我发现了多个带有传单的例子,但没有用 react-leaflet
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
集成如下:
a) 安装 leaflet
和 leaflet-polylinedecorator
软件包:npm i leaflet leaflet-polylinedecorator
b) 安装后,以下组件演示了如何将 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>
);
}
我已经使用 react-leaflet 创建了折线,我想使用 polylinedacorator.But 在折线上显示方向我不知道如何使用 react-leaflet 来实现。我发现了多个带有传单的例子,但没有用 react-leaflet
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
集成如下:
a) 安装 leaflet
和 leaflet-polylinedecorator
软件包:npm i leaflet leaflet-polylinedecorator
b) 安装后,以下组件演示了如何将 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>
);
}