Friday, May 17, 2024
 Popular · Latest · Hot · Upcoming
164
rated 0 times [  168] [ 4]  / answers: 1 / hits: 29914  / 9 Years ago, wed, june 17, 2015, 12:00:00

i'm new to OpenLayers and i am looking for some help drawing lines on a map, i've been trying various things from various different posts about drawing LineStrings but i can't get it to work! I just need to figure out how to draw a line between to coordinates.



heres some code that i tried but didn't work:



var points = [
new ol.geom.Point([78.65, -32.65]),
new ol.geom.Point([-98.65, 12.65])
];

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

var sourceLine = new ol.source.Vector({
features: [featureLine]
});

var vectorLine = new ol.layer.Vector({
source: sourceLine
});

map.addLayer(vectorLine);


i also tried this but to no avail:



var layerLine = new ol.layer.Vector({
source: new ol.source.Vector({
features: [new ol.Feature({
geometry: new ol.geom.LineString(points, 'XY'),
name: 'Line'
})]
}),
});

map.addLayer(vectorLine);


can someone point me in the right direction? or tell me where i am going wrong?



EDIT: thanks to Jonatas, the working code looks like this:



  var coordinates = [[78.65, -32.65], [-98.65, 12.65]]; 

var layerLines = new ol.layer.Vector({
source: new ol.source.Vector({
features: [new ol.Feature({
geometry: new ol.geom.LineString(coordinates),
name: 'Line'
})]
}),
});

map.addLayer(layerLines);

More From » vector

 Answers
18

Just change this:



var points = [
new ol.geom.Point([78.65, -32.65]),
new ol.geom.Point([-98.65, 12.65])
];


To:



var points = [
[78.65, -32.65], [-98.65, 12.65]
];


The ol.geom.LineString constructor accept an array of coordinates.


[#66177] Monday, June 15, 2015, 9 Years  [reply] [flag answer]
Only authorized users can answer the question. Please sign in first, or register a free account.
kristiano

Total Points: 652
Total Questions: 94
Total Answers: 108

Location: Suriname
Member since Sun, Jun 13, 2021
3 Years ago
;