การสร้างฟีเจอร์เวกเตอร์ใน OpenLayers2


16

ฉันต้องการสร้างคุณสมบัติแบบเวกเตอร์โดยทางโปรแกรมบนแผนที่ของฉัน มันควรจะอยู่ในรูปแบบกระดาษขนาด A4 สำหรับแสดงตัวอย่างก่อนพิมพ์

ฉันได้สร้างตัวควบคุมสำหรับจัดการสิ่งนี้ แต่ตอนนี้ฉันมาถึงจุดที่ฉันต้องการสร้างคุณลักษณะแล้ว และฉันก็ไม่รู้ว่าจะทำอย่างไร ความคิดใด ๆ

คำตอบ:


30

การสร้างและเพิ่มฟีเจอร์เวกเตอร์ให้กับเลเยอร์:

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

อย่างไรก็ตามคุณอาจต้องการดูตัวควบคุมการพิมพ์ GeoExt เนื่องจากสนับสนุนขนาดหน้าเช่น A4 และเพิ่มพื้นที่แสดงตัวอย่างลงในแผนที่ คุณยังสามารถดูซอร์สโค้ดเพื่อดูว่าพวกเขาทำสิ่งนี้ได้อย่างไร


+1 สำหรับ GeoExt การควบคุมการพิมพ์ พวกเขาดูเหมือนจะทำงานได้ดีจริงๆ คุณสามารถลองใช้gis.uster.ch/webgis
underdark

ฉันจะเพิ่มชื่อสถานที่ได้อย่างไร (คุณสมบัติ -> คุณสมบัติ -> ชื่อ) ฉันต้องการ feture ที่จะแสดงที่ตารางคุณลักษณะเช่น [นี้] ดังนั้นพวกเขาจึงต้องการชื่อ ( api.geoext.org/1.1/examples/feature-grid.html )
k102

@ k102 ดูคำตอบที่อัปเดตแล้ว
geographika
โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.