Criando programaticamente um recurso de vetor no OpenLayers2

16

Quero criar um recurso de vetor, programaticamente, no meu mapa. Ele deveria estar no formato de papel A4, para mostrar uma espécie de visualização de impressão.

Eu criei um controle para lidar com isso, mas agora estou no ponto em que preciso criar o recurso. E eu não tenho idéia de como posso fazer isso. Alguma ideia?

Kristian Frost
fonte

Respostas:

30

Criando e adicionando um recurso de vetor a uma camada:

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]);

No entanto, você pode preferir olhar para os controles de impressão GeoExt, pois eles suportam tamanhos de página como A4 e adicionam áreas de visualização ao mapa. Você também pode olhar o código fonte para ver como eles fazem isso.

geographika
fonte
+1 para os controles de impressão GeoExt. Eles parecem funcionar muito bem. Você pode experimentá-los gis.uster.ch/webgis
underdark
como também posso adicionar o nome do recurso? (feature-> properties-> name) eu preciso que feture seja mostrado na grade de recursos como [this], então eles precisam de um nome ( api.geoext.org/1.1/examples/feature-grid.html )
k102
@ k102 ver resposta atualizada
geographika