2012-03-19 25 views
11

Tôi có hai điểm có lolLat như 0,10 và 30,0dòng Draw giữa hai điểm sử dụng OpenLayers

Bây giờ để vẽ một điểm đánh dấu vào thời điểm này tôi sử dụng biến đổi này trong khi tạo ra dấu cho nó

lonLat.transform(
       new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984 
       map.getProjectionObject() // to Spherical Mercator Projection 
      ) 

Làm thế nào tôi có thể vẽ đường giữa chúng là có cách nào để làm điều đó trong openlayers, tôi đã cố gắng làm điều đó với linestring trong lớp vector nhưng nó không có vẻ là làm việc cho tôi.

+0

Liệu câu trả lời của tôi làm việc cho yo u? – drnextgis

Trả lời

17

Ví dụ:

map = new OpenLayers.Map(); 

var start_point = new OpenLayers.Geometry.Point(0,10); 
var end_point = new OpenLayers.Geometry.Point(30,0); 

var vector = new OpenLayers.Layer.Vector(); 
vector.addFeatures([new OpenLayers.Feature.Vector(new OpenLayers.Geometry.LineString([start_point, end_point]))]); 
map.addLayers([vector]); 

Live demo

+0

vì lý do nào đó trong nguồn f ol nguồn đã biến mất – talsibony

+1

http://jsfiddle.net/Pkcaf/980/ Tôi cập nhật nó – talsibony

+0

Bạn có thể xem lại nó không? Nó trông trống. –

13

Trong OpenLayers phiên bản 3.3, bạn có thể làm điều này như

var points = [ [-89.8802, 32.5804], [-95.04286, 46.9235] ]; 

for (var i = 0; i < points.length; i++) { 
    points[i] = ol.proj.transform(points[i], 'EPSG:4326', 'EPSG:3857'); 
} 

var featureLine = new ol.Feature({ 
    geometry: new ol.geom.LineString(points) 
}); 

var vectorLine = new ol.source.Vector({}); 
vectorLine.addFeature(featureLine); 

var vectorLineLayer = new ol.layer.Vector({ 
    source: vectorLine, 
    style: new ol.style.Style({ 
     fill: new ol.style.Fill({ color: '#00FF00', weight: 4 }), 
     stroke: new ol.style.Stroke({ color: '#00FF00', width: 2 }) 
    }) 
}); 

Sau đó thêm lớp để lập bản đồ

map.addLayer(vectorLineLayer); 
+0

có thể xác nhận điều này đang hoạt động. cảm ơn. Sử dụng Leaflet, bạn chỉ cần 'L.polyline (mảng) .addTo (map)'. Làm thế nào những kẻ có thể làm cho một tính năng cơ bản rất phức tạp là vượt ra ngoài tôi – Blauhirn

Các vấn đề liên quan