我怎样才能放下一个标记并在该半径内获得一组滞后
How can I drop a marker and get a set of lag long within that radius
我的标记当前可以使用 dragend 的事件侦听器进行拖动。我能够得到那个特定点的滞后和长,但我想得到北、南、东和西坐标。
我认为 getBound() 是我需要的,但我不知道如何在函数式 React 中调用它。
非常感谢任何帮助。
import React from 'react';
import { MapContainer, TileLayer, Marker, Popup } from 'react-leaflet'
import "./Map.css"
function Map({children}) {
return (
<>
{children}
<MapContainer center={[40.678177, -73.944160]} zoom={13} scrollWheelZoom={false}>
<TileLayer
attribution='© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
/>
<Marker
eventHandlers={{
dragend : (e)=>{
console.log(e)}
}}
draggable={true}
position={[40.678177, -73.944160]}
>
<Popup>
test
</Popup>
</Marker>
</MapContainer>
</>
)
};
export default Map;
latlng 点没有界限。但是可以用leaflet-geometryutil's destination function获取东西南北一定距离的点:
import L from 'leaflet';
import 'leaflet-geometryutil';
const distance = 100 // in meters
// within your component:
eventHandlers={{
dragend : (e) => {
const n = L.GeometryUtil.destination(e.latlng, 0, distance)
const s = L.GeometryUtil.destination(e.latlng, 180, distance)
const e = L.GeometryUtil.destination(e.latlng, 90, distance)
const w = L.GeometryUtil.destination(e.latlng, 270, distance)
}}
现在你有正北、正南、正东和正西的点,距离 dragend 事件发生的地方正好 distance
米。
我的标记当前可以使用 dragend 的事件侦听器进行拖动。我能够得到那个特定点的滞后和长,但我想得到北、南、东和西坐标。 我认为 getBound() 是我需要的,但我不知道如何在函数式 React 中调用它。
非常感谢任何帮助。
import React from 'react';
import { MapContainer, TileLayer, Marker, Popup } from 'react-leaflet'
import "./Map.css"
function Map({children}) {
return (
<>
{children}
<MapContainer center={[40.678177, -73.944160]} zoom={13} scrollWheelZoom={false}>
<TileLayer
attribution='© <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
/>
<Marker
eventHandlers={{
dragend : (e)=>{
console.log(e)}
}}
draggable={true}
position={[40.678177, -73.944160]}
>
<Popup>
test
</Popup>
</Marker>
</MapContainer>
</>
)
};
export default Map;
latlng 点没有界限。但是可以用leaflet-geometryutil's destination function获取东西南北一定距离的点:
import L from 'leaflet';
import 'leaflet-geometryutil';
const distance = 100 // in meters
// within your component:
eventHandlers={{
dragend : (e) => {
const n = L.GeometryUtil.destination(e.latlng, 0, distance)
const s = L.GeometryUtil.destination(e.latlng, 180, distance)
const e = L.GeometryUtil.destination(e.latlng, 90, distance)
const w = L.GeometryUtil.destination(e.latlng, 270, distance)
}}
现在你有正北、正南、正东和正西的点,距离 dragend 事件发生的地方正好 distance
米。