admin管理员组文章数量:1418419
I'm trying to show popup on hover a layer in react leaflet. I use GeoJson to render all layer on map, and use onEachFeature() to show popup on hover a layer. However, when I move my mouse into a layer, popup didn't show. It only showed on click. This is my code and my map ( layers are colored in blue).
import { MapContainer, TileLayer, Marker, Popup, GeoJSON } from 'react-leaflet';
import './index.css'
import React, { useEffect, useState } from 'react';
import "leaflet/dist/leaflet.css";
import Header from '../mon/header'
import { PixiOverlay } from 'react-leaflet-pixi-overlay';
import * as polygonData from '../../data/tinh.json';
import axios from 'axios'
import * as Request from '../../services';
export default function Home() {
// const [display, setDisplay]=useState(false);
// const [options, setOptions]=useState([]);
// const [search, setSearch]= useState("");
//function to show popup when hover
const onEachContry = (feature, layer) =>{
const contryName = feature.properties.NAME_1;
layer.on('mouseover', function (e) {
layer.bindPopup(contryName)
});
}
return (
<>
<Header />
<MapContainer center={[10.7743, 106.6669]} zoom={5}>
<TileLayer
attribution='© <a href=";>OpenStreetMap</a> contributors'
url="https://{s}.tile.openstreetmap/{z}/{x}/{y}.png"
/>
<GeoJSON
data={polygonData.features}
onEachFeature={onEachContry}
/>
</MapContainer>
</>
I'm trying to show popup on hover a layer in react leaflet. I use GeoJson to render all layer on map, and use onEachFeature() to show popup on hover a layer. However, when I move my mouse into a layer, popup didn't show. It only showed on click. This is my code and my map ( layers are colored in blue).
import { MapContainer, TileLayer, Marker, Popup, GeoJSON } from 'react-leaflet';
import './index.css'
import React, { useEffect, useState } from 'react';
import "leaflet/dist/leaflet.css";
import Header from '../mon/header'
import { PixiOverlay } from 'react-leaflet-pixi-overlay';
import * as polygonData from '../../data/tinh.json';
import axios from 'axios'
import * as Request from '../../services';
export default function Home() {
// const [display, setDisplay]=useState(false);
// const [options, setOptions]=useState([]);
// const [search, setSearch]= useState("");
//function to show popup when hover
const onEachContry = (feature, layer) =>{
const contryName = feature.properties.NAME_1;
layer.on('mouseover', function (e) {
layer.bindPopup(contryName)
});
}
return (
<>
<Header />
<MapContainer center={[10.7743, 106.6669]} zoom={5}>
<TileLayer
attribution='© <a href="http://osm/copyright">OpenStreetMap</a> contributors'
url="https://{s}.tile.openstreetmap/{z}/{x}/{y}.png"
/>
<GeoJSON
data={polygonData.features}
onEachFeature={onEachContry}
/>
</MapContainer>
</>
Share
Improve this question
asked Dec 21, 2020 at 9:01
Nguyen TuNguyen Tu
1594 silver badges12 bronze badges
1 Answer
Reset to default 6You simply need to call openPopup()
method so the popup opens when you hover.
//function to show popup when hover
const onEachContry = (feature, layer) =>{
const contryName = feature.properties.NAME_1;
layer.on('mouseover', function (e) {
layer.bindPopup(contryName).openPopup(); // here add openPopup()
});
}
本文标签: javascriptShow popup on hover a layer in reactleafletStack Overflow
版权声明:本文标题:javascript - Show popup on hover a layer in react-leaflet - Stack Overflow 内容由网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:http://www.betaflare.com/web/1745276378a2651212.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论