2012-03-19 14 views
11

我有具有lolLat爲0,10和30,0線 <p>我如何繪製它們之間的線是否有任何方式在openlayers中做到這一點,我曾嘗試使用矢量圖層中的線串做它,但它似乎並沒有爲我工作。</p>

現在,在這一點上,我使用該變換而它

lonLat.transform(
       new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984 
       map.getProjectionObject() // to Spherical Mercator Projection 
      ) 
生成標記繪製一個標記的兩個點的兩個點之間繪製
+0

難道我的答案爲喲工作ü? – drnextgis 2012-03-20 08:11:02

回答

17

例如:

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

由於某種原因在小提琴OL源不見了 – talsibony 2015-07-23 07:47:11

+1

http://jsfiddle.net/Pkcaf/980/我更新了它 – talsibony 2015-07-23 07:48:29

+0

你能再看一遍嗎?它看起來空白。 – 2018-02-27 21:59:03

13

在的OpenLayers 3.3的版本,你可以這樣做,因爲

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

然後加層映射

map.addLayer(vectorLineLayer); 
+0

可以確認這是工作。謝謝。使用Leaflet,你只需要'L.polyline(array).addTo(map)'。這些傢伙如何能夠做出如此複雜的基本功能超出了我的想象 – Blauhirn 2016-11-26 21:54:51

相關問題