Lập trình tạo một tính năng vectơ trong OpenLayers2


16

Tôi muốn tạo một tính năng vector, lập trình, trên bản đồ của tôi. Nó được cho là ở dạng A4-paperformat, để hiển thị một loại bản xem trước in.

Tôi đã tạo một điều khiển để xử lý việc này, nhưng bây giờ tôi đang ở điểm cần tạo tính năng này. Và tôi không biết làm thế nào tôi có thể làm điều đó. Có ý kiến ​​gì không?

Câu trả lời:


30

Tạo và thêm một tính năng vector vào một lớp:

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

Tuy nhiên, bạn có thể thích xem các điều khiển in của GeoExt vì chúng hỗ trợ các kích thước trang như A4 và thêm các khu vực xem trước vào bản đồ. Bạn cũng có thể nhìn vào mã nguồn để xem họ làm điều này như thế nào.


+1 cho các điều khiển in GeoExt. Họ dường như làm việc thực sự tốt. Bạn có thể thử chúng gis.uster.ch/webgis
Underdark

Làm thế nào tôi cũng có thể thêm tên tính năng? (tính năng-> thuộc tính-> tên) tôi cần được hiển thị tại lưới tính năng như [này], vì vậy họ cần một tên ( api.geoext.org/1.1/examples/feature-grid.html )
k102

@ k102 xem câu trả lời được cập nhật
geographika
Khi sử dụng trang web của chúng tôi, bạn xác nhận rằng bạn đã đọc và hiểu Chính sách cookieChính sách bảo mật của chúng tôi.
Licensed under cc by-sa 3.0 with attribution required.