2015-11-17 97 views
2

我知道這裏有很多帖子,但我已經嘗試了很多,他們似乎並沒有解決我的問題。在開放圖層繪製線條3

我想在使用線串的地圖上繪製一條線,但無論我做什麼,它都不畫線。這裏是我的代碼:

var coords = [[78.65, -32.65], [15.65, -98.65]]; 

var lineStyle = new ol.style.Style({ 
    stroke: new ol.style.Stroke(({ 
     width: 10 
    })) 
}); 

var layerLines = new ol.layer.Vector({ 
    style: lineStyle, 
    source: new ol.source.Vector({ 
     features: [new ol.Feature({ 
      geometry: new ol.geom.LineString(coords, 'EPSG:4326', 'EPSG:3857'), 
      name: 'Line' 
     })] 
    }), 
}); 

var map = new ol.Map({ 
    layers: [ 
     mainLayer, 
     vectorLayer, 
     layerLines 
    ], 
    projection: "EPSG:3857", 
    target: 'map', 
    view: view 
}); 

如果我創建的線串不轉換,然後它會顯示在0,0中的一個點,但我不覺得,因爲如果我留空則沒有點就不能看我的座標出現,所以它不能使用默認值。

我對JavaScript和OL很新,所以我目前的示例項目是創建一個測量應用程序,人們可以測量兩點並在它之間繪製一條線。回答時請記住這一點。

回答

2

注意一些變化:

var coords = [[-65.65, 10.10], [13, 18]]; 
var lineString = new ol.geom.LineString(coords); 
// transform to EPSG:3857 
lineString.transform('EPSG:4326', 'EPSG:3857'); 

// create the feature 
var feature = new ol.Feature({ 
    geometry: lineString, 
    name: 'Line' 
}); 

http://jsfiddle.net/jonataswalker/7cf5egm2/

我改變了coords,原來是一個有點奇怪|錯。

+0

我所遵循的例子是在一行中創建它們,但顯然你需要分解它來正確地轉換它。謝謝您的幫助 – Keithin8a