Este post ha sido aprobado por nuestros expertos para garantizar la exactitud de nuestro tutorial.
Solución:
Así es como lo resolví con Leaflet Polygons and Labels, para que obtenga una etiqueta flotante en el polígono con su propiedad de nombre.
Suponer:
- obtienes la respuesta json analizada en la variable json
- solo hay polígonos simples sin agujeros en json
- polígono_estilo contiene opciones de estilo devueltas por su función de estilo
- labels_layer es un grupo de capas de folletos (o directamente su mapa)
Después:
for ( var i=0; i < json.features.length; i++ )
feat = json.features[i];
coords = [];
for ( var j = 0 ; j < feat.geometry.coordinates[0].length - 1; j++ )
coord = feat.geometry.coordinates[0][j];
point = [];
point.push( coord[1], coord[0]);
coords.push( point );
labels_layer.addLayer(L.polygon( coords, polygon_style ).bindLabel(feat.properties.name)) ;
Sorprendentemente, por extraño que parezca, GeoJson (en realidad EPSG: 4326) y las coordenadas del folleto se intercambian en orden.
Necesita saber el formato que el prospecto espera usar. Ejemplo: OpenLayers espera que este formato GeoJSON cree un punto y proporcione algo personalizado. attributes:
"type":"FeatureCollection",
"features":[
"type":"Feature",
"properties":
"name":"TRON-02",
"serial":"TRON002",
"bearing":0,
"color":"green",
"size":15,
"image":"img/unit_map3.png",
,
"geometry":
"type":"Point",
"coordinates":[-50.06542968749966,-23.749149728383717]
]
Como puede ver, he creado una Geometría (Punto) y la uní a mi attributes lo. Cuando envíe esto a OpenLayers, el resultado encajará en el ejemplo de @Aragon, usando "color" y "nombre" (como etiqueta) para personalizar el punto en el mapa.
Copie y pegue este ejemplo de GeoJSON en http://json.parser.online.fr/ o use el sitio para probar y validar el suyo.
Sección de Reseñas y Valoraciones
Más adelante puedes encontrar las críticas de otros administradores, tú todavía puedes insertar el tuyo si lo crees conveniente.