React wrapper of leaflet-semicircle for react-leaflet.
Semicircle vector layers for Leaflet maps. Extends L.Circle and L.CircleMarker.
Most recently tested with Leaflet 1.7.1 and React-Leaflet 3.1.0
The current version of this library supports React Leaflet v3.
If you are using React Leaflet v2, please use the v2 version of this library:
https://github.com/clementallen/react-leaflet-semicircle/tree/v2
npm install react-leaflet-semicircle --save
import { MapContainer, TileLayer } from 'react-leaflet';
import { SemiCircle, SemiCircleMarker } from 'react-leaflet-semicircle';
<MapContainer center={[51.505, -0.09]} zoom={13}>
<TileLayer
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
attribution='© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
/>
<SemiCircle
position={[51.505, -0.09]}
radius={2000}
startAngle={90}
stopAngle={180}
/>
<SemiCircleMarker
position={[51.505, -0.09]}
radius={20}
startAngle={90}
stopAngle={180}
/>
</MapContainer>;
<SemiCircle
position={[51.505, -0.09]}
radius={2000}
startAngle={90}
stopAngle={180}
/>
Name | Type | Example | Description |
---|---|---|---|
position [required] | L.LatLng[] or Array[number, number] | [51.505, -0.09] | Latitude and Longitude of the semicircle center |
radius [required] | number | 2000 | Radius of the semicircle in metres |
startAngle | number | 90 | Starting bearing of the semicircle |
stopAngle | number | 180 | Ending bearing of the semicircle |
All other options from L.Circle are also supported. View them here
<SemiCircleMarker
position={[51.505, -0.09]}
startAngle={90}
stopAngle={180
/>
Name | Type | Example | Description |
---|---|---|---|
position [required] | L.LatLng[] or Array[number, number] | [51.505, -0.09] | Latitude and Longitude of the semicirclemarker center |
startAngle | number | 90 | Starting bearing of the semicirclemarker |
stopAngle | number | 180 | Ending bearing of the semicirclemarker |
All other options from L.CircleMarker are also supported. View them here
Each component comes with additional methods that can be accessed via React Refs.
const semiCircleRef = React.useRef();
// ----
<SemiCircle
position={[51.505, -0.09]}
radius={2000}
startAngle={90}
stopAngle={180}
ref={semiCircleRef}
/>;
Use setDirection(direction, size)
to display a semicircle of size
degrees at direction
.
semiCircleRef.current.setDirection(90, 90);
Use setStartAngle(angle)
to set the start angle of the semicircle to angle
semiCircleRef.current.setStartAngle(90);
Use setStopAngle(angle)
to set the stop angle of the semicircle to angle
semiCircleRef.current.setStopAngle(90);