Programmgesteuertes Erstellen eines Vektor-Features in OpenLayers2

16

Ich möchte programmgesteuert ein Vektor-Feature auf meiner Karte erstellen. Es soll im A4-Format vorliegen, um eine Art Druckvorschau anzuzeigen.

Ich habe ein Steuerelement erstellt, um damit umzugehen, aber jetzt bin ich an dem Punkt angelangt, an dem ich das Feature erstellen muss. Und ich habe keine Ahnung, wie ich das machen kann. Irgendwelche Ideen?

Kristian Frost
quelle

Antworten:

30

Erstellen und Hinzufügen eines Vektor-Features zu einer Ebene:

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

Sie können jedoch die GeoExt-Drucksteuerelemente bevorzugen, da sie Seitengrößen wie A4 unterstützen und der Karte Vorschaubereiche hinzufügen. Sie können sich auch den Quellcode ansehen, um zu sehen, wie sie dies tun.

geographika
quelle
+1 für GeoExt-Drucksteuerelemente. Sie scheinen wirklich gut zu funktionieren. Sie können sie ausprobieren. Gis.uster.ch/webgis
underdark
Wie kann ich auch einen Funktionsnamen hinzufügen? (feature-> properties-> name) Ich brauche eine Funktion, die wie folgt im Feature-Grid angezeigt wird.
Daher
@ K102 siehe aktualisierte Antwort
Geographika