2012-03-19 20 views
11

それドローライン <p>どのように私はそれらの間に線を描くことができますOpenlayersでそれを行うための方法は、私はベクトル層で線ストリングでやってみたが、それは私のために働いていないようです。例えば</p>

lonLat.transform(
       new OpenLayers.Projection("EPSG:4326"), // transform from WGS 1984 
       map.getProjectionObject() // to Spherical Mercator Projection 
      ) 
ためのマーカーを生成しながら、私は、この変換を使用して、この時点でマーカーを引くために今0,10および30.0

としてlolLatを持つ2つの点を持っているを使用して2点間

+0

をマッピングするためにレイヤーを追加することは私の答えをいよろしくあなた? – drnextgis

答えて

17

:OpenLayersをバージョン3.3では

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

何らかの理由で何かの理由で元のソースがなくなった – talsibony

+1

http://jsfiddle.net/Pkcaf/980/私はそれを更新しました – talsibony

+0

もう一度見ることができますか?それは空白に見えます。 –

13

、あなたが

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

はこれが機能していることを確認できます。ありがとう。リーフレットを使うと 'L.polyline(array).addTo(map)'だけ必要です。これらの人がどのようにして基本的な機能を複雑にすることができたのかは私の外にある – Blauhirn

関連する問題

 関連する問題