Creazione programmatica di una funzione vettoriale in OpenLayers2


16

Voglio creare una funzione vettoriale, a livello di codice, sulla mia mappa. Dovrebbe essere nel formato A4, per mostrare una sorta di anteprima di stampa.

Ho creato un controllo per gestirlo, ma ora sono nel punto in cui devo creare la funzione. E non ho idea di come posso farlo. Qualche idea?

Risposte:


30

Creazione e aggiunta di una funzione vettoriale a un livello:

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

Tuttavia, potresti preferire guardare i controlli di stampa GeoExt in quanto supportano dimensioni di pagina come A4 e aggiungono aree di anteprima alla mappa. Puoi anche guardare il codice sorgente per vedere come lo fanno.


+1 per i controlli di stampa GeoExt. Sembrano funzionare davvero bene. Si può provare a gis.uster.ch/webgis~~V~~plural~~3rd
Sottosuolo

come posso anche aggiungere il nome della funzione? (feature-> properties-> name) ho bisogno che il feto sia mostrato nella griglia delle feature come [this], quindi hanno bisogno di un nome ( api.geoext.org/1.1/examples/feature-grid.html )
k102

@ k102 vedi risposta aggiornata
geographika
Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.