Secara terprogram membuat fitur vektor di OpenLayers2

16

Saya ingin membuat fitur vektor, secara terprogram, di peta saya. Seharusnya dalam format kertas-A4, untuk menunjukkan semacam pratinjau cetak.

Saya telah membuat kontrol untuk menangani ini, tetapi sekarang saya pada titik di mana saya perlu membuat fitur. Dan saya tidak tahu bagaimana saya bisa melakukannya. Ada ide?

Kristian Frost
sumber

Jawaban:

30

Membuat dan menambahkan fitur vektor ke layer:

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

Namun Anda mungkin lebih suka melihat kontrol cetak GeoExt karena mendukung ukuran halaman seperti A4 dan menambahkan area pratinjau ke peta. Anda juga dapat melihat kode sumber untuk melihat bagaimana mereka melakukan ini.

geografi
sumber
+1 untuk kontrol cetak GeoExt. Mereka tampaknya bekerja dengan sangat baik. Anda dapat mencobanya gis.uster.ch/webgis
underdark
bagaimana saya juga bisa menambahkan nama fitur? (fitur-> properti-> nama) saya perlu feture untuk ditampilkan di kotak fitur seperti [ini], sehingga mereka memerlukan nama ( api.geoext.org/1.1/examples/feature-grid.html )
k102
@ k102 lihat jawaban yang diperbarui
geografi