Creación programática de una función vectorial en OpenLayers2

16

Quiero crear una función vectorial, mediante programación, en mi mapa. Se supone que está en el formato de papel A4, para mostrar una especie de vista previa de impresión.

He creado un control para manejar esto, pero ahora estoy en el punto donde necesito crear la función. Y no tengo idea de cómo puedo hacerlo. ¿Algunas ideas?

Kristian Frost
fuente

Respuestas:

30

Crear y agregar una entidad vectorial a una capa:

var points = [
    new OpenLayers.Geometry.Point(0, 0),
    new OpenLayers.Geometry.Point(0, 100),
    new OpenLayers.Geometry.Point(100, 100),
    new OpenLayers.Geometry.Point(100, 0)
];
var ring = new OpenLayers.Geometry.LinearRing(points);
var polygon = new OpenLayers.Geometry.Polygon([ring]);

// create some attributes for the feature
var attributes = {name: "my name", bar: "foo"};

var feature = new OpenLayers.Feature.Vector(polygon, attributes);
var layer = new OpenLayers.Layer.Vector("Test");
layer.addFeatures([feature]);

Sin embargo, puede preferir mirar los controles de impresión GeoExt ya que admiten tamaños de página como A4 y agregar áreas de vista previa al mapa. También puede mirar el código fuente para ver cómo lo hacen.

geographika
fuente
+1 para controles de impresión GeoExt. Parecen funcionar muy bien. Puede probarlos gis.uster.ch/webgis
underdark
¿Cómo puedo agregar también el nombre de la función? (característica-> propiedades-> nombre) necesito que me muestren feture en la cuadrícula de características como [esto], por lo que necesitan un nombre ( api.geoext.org/1.1/examples/feature-grid.html )
k102
@ k102 ver respuesta actualizada
geographika