Programlı olarak OpenLayers2'de bir vektör özelliği oluşturma


16

Haritamda programlı olarak bir vektör özelliği oluşturmak istiyorum. Bir tür baskı önizlemesi göstermek için A4-kağıt biçiminde olması gerekiyordu.

Bunu ele almak için bir kontrol oluşturdum, ancak şimdi özelliği oluşturmam gereken noktadayım. Ve bunu nasıl yapabileceğime dair hiçbir fikrim yok. Herhangi bir fikir?

Yanıtlar:


30

Bir katmana vektör özelliği oluşturma ve ekleme:

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

Bununla birlikte, A4 gibi sayfa boyutlarını destekledikleri ve haritaya önizleme alanları ekledikleri için GeoExt baskı kontrollerine bakmayı tercih edebilirsiniz. Bunun nasıl yapıldığını görmek için kaynak koduna da bakabilirsiniz.


GeoExt baskı kontrolleri için +1. Gerçekten iyi çalışıyor gibi görünüyorlar. Bunları deneyebilirsiniz gis.uster.ch/webgis
underdark

özellik adını nasıl ekleyebilirim? (feature-> properties-> name) [Bu] gibi özellik kılavuzunda gösterilmek için feture'a ihtiyacım var, bu yüzden bir ada ihtiyaçları var ( api.geoext.org/1.1/examples/feature-grid.html )
k102

@ k102 güncellenmiş cevaba bakınız
geographika
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.