J'utilise Leaflet combiné avec les fonctionnalités GeoJSON. Existe-t-il un moyen d'étiqueter les entités GeoJSON (dans ce cas - les polygones)? Il devrait obtenir des étiquettes de
feature.properties.name
C'est mon code où je pense que je pourrais insérer une étiquette:
function style(feature) {
return {
weight: 2,
opacity: 1,
color: 'white',
dashArray: '3',
fillOpacity: 0.7,
fillColor: getColor(feature.properties.coloring)
};
}
javascript
web-mapping
labeling
geojson
leaflet
contre-courant
la source
la source
Réponses:
Vous devez connaître le format que la brochure prévoit d'utiliser. RFM. Exemple: OpenLayers attend de ce format GeoJSON qu'il crée un point et lui donne des attributs personnalisés:
Comme vous pouvez le voir, j'ai créé une géométrie (point) et y associe mes attributs. Lorsque j'envoie ceci à OpenLayers, le résultat s'inscrira dans l'exemple de @ Aragon, en utilisant "couleur" et "nom" (comme étiquette) pour personnaliser le point sur la carte.
Veuillez copier et coller cet exemple GeoJSON dans http://json.parser.online.fr/ ou utiliser le site pour essayer de valider le vôtre.
la source
return feature.properties.color;
Comme vous pouvez le voir,properties
est unfeature
attribut et possède l'color
un de ses attributs. Vous pouvez mettre tout ce que vous voulez dans cet objet de cette façon.RFM
est totalement inutile. Et la différence entre un point et un polygone est importante, car savoir quelle géométrie utiliser est exactement le problème iciVoici comment je l'ai résolu avec des polygones et des étiquettes Leaflet, afin que vous obteniez une étiquette flottante sur le polygone avec sa propriété name.
Supposer:
Alors:
Curieusement, les coordonnées GeoJson (en fait EPSG: 4326) et Leaflet sont inversées dans l'ordre.
la source
je pense que cette question concerne openlayers.if donc, vous pouvez utiliser pour l'étiquetage;
J'espère que ça t'aide...
la source
fillColor: "${color}"
au lieu de créer une fonction?