J'utilise l'exemple de chloropathe interactif pour leaflet.js
J'ai compris comment faire en sorte que chacun de mes polygones ajoute un décompte courant de valeurs au bas de la page après avoir cliqué sur chaque polygone.
En cliquant une fois sur un polygone sélectionné, il supprime sa valeur du décompte en cours.
Je voudrais représenter visuellement cela comme un changement de couleur de remplissage des polygones sur la carte.
Voici mon code jusqu'à présent (javascript avec PHP inclus): (J'ai inclus des commentaires dans mon code pour expliquer ce que j'essaie de faire. Encore une fois, toute aide serait grandement appréciée)
function addUp(num, x)
{
<?php
// begin php code
$places = $db->query("SELECT boundary_id, boundary_name FROM boundaries WHERE
boundary_state= '$thatstate'");
while($row = $places->fetch_object()) {
//end php code ?>
//begin javascript
if (x == "List<?php echo $row->boundary_name ?>" && List<?php echo $row->boundary_name ?> == 1) {
temp = document.theForm.ttl.value;
tempo = parseInt(temp);
numo = parseInt(num);
nwTemp = tempo + numo;
document.theForm.ttl.value = nwTemp;
geojson.setStyle({fillColor: 'blue'}); // I want to set color to blue to show highlighted
List<?php echo $row->boundary_name ?> = 0;
return List<?php echo $row->boundary_name ?>;
}
if (x == "List<?php echo $row->boundary_name ?>" && List<?php echo $row->boundary_name ?> == 0) {
temp = document.theForm.ttl.value;
tempo = parseInt(temp);
numo = parseInt(num);
nwTemp = tempo - numo;
document.theForm.ttl.value = nwTemp;
// I want to reset color of polygon if deselected (this would be the default)
geojson.resetStyle;
List<?php echo $row->boundary_name ?> = 1;
}
}
Réponses:
Vous pouvez changer la couleur de remplissage d'un polygone avec la
setStyle
méthode (héritée de Path ).Si vous rencontrez des difficultés pour afficher correctement le geojson, vous pouvez consulter les documents Leaflet GeoJSON .
la source
Il y a aussi ce jsfiddle sur lequel je suis tombé. Je ne peux pas le revendiquer comme le mien, mais vous pouvez trier les objets d'options via
event.target.options
ou même définir l'attribut de couleur pour un événement cible viaevent.target.setAttribute()
la source