gpt4 book ai didi

javascript - 如何给 map 添加onClick `leaflet`

转载 作者:行者123 更新时间:2023-12-05 06:06:16 25 4
gpt4 key购买 nike

我正在使用 Leaflet我想显示一个显示 latlng 的警报点击位置的我按照此处的文档步骤 https://leafletjs.com/examples/quick-start/

我试过了

    var mymap = L.map('mapid').setView([51.505, -0.09], 13);

function onMapClick(e) { //THE FUNCTION
alert("You clicked the map at " + e.latlng);
}

mymap.on('click', onMapClick);

<MapContainer>我这样定义它

<MapContainer id="mapid" onClick={onMapClick}/>

但它什么也没显示

这是完整的代码

import { MapContainer, TileLayer, Marker, Popup } from 'react-leaflet'

import React, { Component } from 'react';
import L from 'leaflet'

class UserMap extends Component {

render() {
var mymap = L.map('mapid').setView([51.505, -0.09], 13);
function onMapClick(e) {
alert("You clicked the map at " + e.latlng);
}
mymap.on('click', onMapClick);
return (
<div
id="mapid" style={{ height: '100%', width: '100%' }}>
<MapContainer

id="mapid"
center={[30.794900, 50.564580]}
zoom={13}
zoomOffset={1}
boxZoom={false}
scrollWheelZoom={true}
style={{ height: '500px', width: '100%' }}>
<TileLayer
attribution='&copy; <a href="http://osm.org/copyright">OpenStreetMap</a> contributors'
url="https://{s}.tile.openstreetmap.org/{z}/{x}/{y}.png"
/>
<Marker
position={[30.794900, 50.564580]}>
<Popup>
A pretty CSS3 popup. <br /> Easily customizable.
</Popup>
</Marker>
</MapContainer></div>


);
}
}

export default UserMap;

最佳答案

onClick 不再有效,您应该使用 useMapEvents Hook ( https://react-leaflet.js.org/docs/api-map/#usemapevents)。

基本上,您必须使用 useMapEvents Hook 创建一个组件,它会监听点击并在您的 MapContainer 中调用该组件。

在您的 MapContainer 中添加以下代码来解决您的问题:

function MyComponent() {
useMapEvents({
click(e){
alert(e.latlng)
}
})
}

关于javascript - 如何给 map 添加onClick `leaflet`,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/65815849/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com