Des exemples de D3.brush () utilisés avec Leaflet?


10

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:

  1. Tout le monde connaissait des exemples, OU
  2. Tout le monde savait si c'était possible / assez simple OU
  3. Si possible, n'importe qui avait des conseils sur le genre de problèmes que je pourrais rencontrer.

Avez-vous réussi à le faire fonctionner? Avez-vous trouvé que le pinceau ne s'alignait pas avec votre souris dans Firefox?
Frazer Kirkman

Ceci est une alternative au pinceau - github.com/w8r/leaflet-area-select
Frazer Kirkman

Réponses:


2

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 brushendedfonction, parcourez layer_group.eachLayer()et utilisez your_map.removeLayer(layer)et your_map.addLayer(layer)pour contrôler la visibilité de la fonction.

Voici le JSFiddle: https://jsfiddle.net/0dyjkk2h/2/

Carte de brochure avec brosse D3


Peut-être que je n'ai pas bien compris la question. Voulez-vous pouvoir brosser sur la carte ou sur un graphique séparé (comme dans mon exemple)?
thibautg
En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.