J'ai des données GeoJSON que j'utilise pour créer des CircleMarkers avec react-leafet sur une carte et en utilisant D3.js pour créer un diagramme de dispersion en dessous.Connexion de React-Leaflet CircleMarker et d'un point de dispersion sur hover
Je veux lier les deux afin que lorsque vous passez la souris sur un CircleMarker, son cercle correspondant sur le graphique change également la couleur du remplissage et du trait.
J'ai essayé de donner à chacun une classe unique, mais cela ne fait que souligner chaque cercle séparément, pas en même temps.
Je ne sais pas comment procéder. Puis-je définir un ID ou utiliser chaque clé pour le faire?
Voilà comment je crée les CircleMarkers pour la carte et les cercles du graphique:
const chartDots = pointsData.features.map((pt, index) => {
return (
<circle
key={"circle-" + index}
className={"myClass-" + index}
fill="dodgerBlue"
cx={xScale(pt.properties.value1)}
cy={yScale(pt.properties.value2)}
opacity={0.5}
r={10}
>
<title>Name: {pt.properties.name}</title>
</circle>
)
})
const myPoints = pointsData.features.map((pt, index) => {
const coord = [pt.geometry.coordinates[1], pt.geometry.coordinates[0]]
return (
<CircleMarker
key={'cm-' + index}
className={"myClass-" + index}
center={coord}
opacity={0.5}
>
<Popup>
<span>{pt.properties.name}</span>
</Popup>
</CircleMarker>
)
})
Lien vers le code complet sur jsFiddle: https://jsfiddle.net/mendoza_line/39n4rs4q/
Vous aviez raison. Hover était une impasse. J'ai utilisé d3.selectAll pour changer le graphique en utilisant le même gestionnaire d'événements. – mendozaline