En la documentación para el folleto aquí: http://leafletjs.com/reference-1.2.0.html#circlemarker dice que CircleMaker extiende círculo, y que es lo mismo, excepto que el radio se especifica en píxeles en lugar de en metros, por lo que los círculos permanecen tamaño constante incluso si hace zoom en el mapa.Folleto: Círculo que se comporta diferente de CircleMarker
Sin embargo, necesito Círculos, porque estoy tratando de dibujar círculos de 100 m de radio en un mapa. Para ello, utilizo el siguiente código:
var geojsonLayer = new L.GeoJSON(null,{
pointToLayer: function (latlng){
return new L.CircleMarker(latlng, {
radius: 5,
fillColor: "#ff7800",
color: "#000",
weight: 1,
opacity: 1,
fillOpacity: 0.8,
});
}});
map.addLayer(osm);
map.addLayer(geojsonLayer);
geojsonLayer.addGeoJSON(jsonExample);
Esto funciona perfectamente, sin embargo, si cambio el código para utilizar "Círculo" en lugar de CircleMaker todo el mapa no se puede cargar, y me da un error de javascript:
Error: Error: Invalid LatLng object: (56.229917, NaN)
puedo solucionar este problema mediante pre-filtración de la GeoJSON para eliminar esos puntos que carecen tanto de latitud y longitud, pero estoy confundido: Círculo y CircleMaker tanto especifican que toman un LatLng a objetos como la especificación de el punto central, no entiendo cómo un determinado objeto LatLng puede ser válido como punto central para un CircleMarker, pero no es válido si se utiliza como el punto central de un círculo.
¿Estoy pasando por alto algo obvio, o es solo una debilidad y/o error en Leaflet que tendré que solucionar?
¡Impresionante! Gracias. Esto parece que vale la pena en general, así que creo que ese parche también debería enviarse a los desarrolladores de Leaflet. – Agrajag
¿Qué pasó con esto, de todos modos? –
¿Alguna actualización sobre esto? – kuanb