regular - OpenLayers: ¿cómo puedo dibujar un Polígono a partir de los puntos de LonLat existentes?
pentagono regular (1)
Tengo en mi base de datos vértices de longitud y latitud de polígonos definidos por el usuario. Mis preguntas son: ¿cómo puedo recrearlas y mostrarlas en un mapa ahora? Esto es bastante fácil de hacer con la API de Google Maps, pero no puedo encontrar documentación o ejemplos sobre cómo hacer esto con OpenLayers. ¿Alguien ha tenido alguna experiencia haciendo esto?
Después de mucha experimentación, descubrí cómo hacerlo:
var sitePoints = [];
var siteStyle = {
// style_definition
};
var epsg4326 = new OpenLayers.Projection("EPSG:4326");
for (var i in coordinates) {
var coord = coordinates[i];
var point = new OpenLayers.Geometry.Point(coord.lng, coord.lat);
// transform from WGS 1984 to Spherical Mercator
point.transform(epsg4326, map.getProjectionObject());
sitePoints.push(point);
}
sitePoints.push(sitePoints[0]);
var linearRing = new OpenLayers.Geometry.LinearRing(sitePoints);
var geometry = new OpenLayers.Geometry.Polygon([linearRing]);
var polygonFeature = new OpenLayers.Feature.Vector(geometry, null, siteStyle);
vectors.addFeatures([polygonFeature]);