Programowe tworzenie funkcji wektorowej w OpenLayers2

16

Chcę utworzyć programowo element wektorowy na mojej mapie. Ma być w formacie A4, aby pokazać rodzaj podglądu wydruku.

Stworzyłem kontrolkę do obsługi tego, ale teraz jestem w punkcie, w którym muszę utworzyć funkcję. I nie mam pojęcia, jak to zrobić. Jakieś pomysły?

Kristian Frost
źródło

Odpowiedzi:

30

Tworzenie i dodawanie elementu wektorowego do warstwy:

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

Możesz jednak spojrzeć na kontrolki drukowania GeoExt, ponieważ obsługują one rozmiary stron, takie jak A4 i dodają obszary podglądu do mapy. Możesz także spojrzeć na kod źródłowy, aby zobaczyć, jak to robią.

geografia
źródło
+1 za kontrolki drukowania GeoExt. Wydają się działać naprawdę dobrze. Możesz spróbować gis.uster.ch/webgis
podmroku
jak mogę również dodać nazwę funkcji? (feature-> właściwości-> nazwa) Potrzebuję fetyszy, aby pokazać ją na siatce funkcji, tak jak [to], więc potrzebują nazwy ( api.geoext.org/1.1/examples/feature-grid.html )
k102
@ K102 Zobacz zaktualizowaną odpowiedź
Geographika,