J'ai une carte de dépliant sur laquelle j'ai placé un SVG "au-dessus" à l'aide du volet de superposition de dépliant. Je veux ajouter un pinceau D3 au volet de superposition qui mettra ensuite à jour un graphique distinct. J'ai cherché des exemples d'exemples simultanés de D3.brush () et de dépliants, mais je n'arrive pas à en trouver.
La chose la plus proche que j'ai trouvée était cette https://github.com/mbostock/d3/issues/1321 et cette https://www.mapbox.com/mapbox.js/example/v1.0.0/timeline-scaled-markers/ (c'est brosser le graphique et non la carte).
Je me demandais si:
- Tout le monde connaissait des exemples, OU
- Tout le monde savait si c'était possible / assez simple OU
- Si possible, n'importe qui avait des conseils sur le genre de problèmes que je pourrais rencontrer.
Réponses:
Je viens de faire un exemple de base basé sur ce bl.ock .
Processus
ajoutez votre groupe de couches à la carte (depuis GeoJSON)
enregistrez votre groupe de calques dans une variable, c'est-à-dire
var layer_group = L.geoJSON(json, {...}).addTo(your_map);
Dans votre
brushended
fonction, parcourezlayer_group.eachLayer()
et utilisezyour_map.removeLayer(layer)
etyour_map.addLayer(layer)
pour contrôler la visibilité de la fonction.Voici le JSFiddle: https://jsfiddle.net/0dyjkk2h/2/
la source