在React-Leaflet中,可以通过使用Leaflet的事件处理机制来实现在移动(拖动)时更新标记的新位置。以下是一种实现方法:
import { MapContainer, TileLayer, Marker } from 'react-leaflet';
import 'leaflet/dist/leaflet.css';
const [markerPosition, setMarkerPosition] = useState([51.505, -0.09]);
<MapContainer center={markerPosition} zoom={13} style={{ height: '400px', width: '100%' }}>
<TileLayer url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png" />
<Marker position={markerPosition} draggable={true} onDragend={handleMarkerDragend} />
</MapContainer>
const handleMarkerDragend = (e) => {
setMarkerPosition(e.target.getLatLng());
};
这样,当用户拖动标记时,handleMarkerDragend函数会被触发,从而更新标记的位置,并重新渲染地图。
这是一个简单的示例,你可以根据实际需求进行扩展和定制。关于React-Leaflet的更多信息和用法,请参考腾讯云的Leaflet产品文档:Leaflet产品文档。
领取专属 10元无门槛券
手把手带您无忧上云