I don't understand why my code doesn't work. If the map is displayed, the line is never drawn:
<script>
var long_deb = -1.28627;
var lat_deb = 43.49829;
var long_fin = -1.29394;
var lat_fin = 43.49858;
var attribution = new ol.control.Attribution({
collapsible: false
});
var map = new ol.Map({
controls: ol.control.defaults({ attribution: false }).extend([attribution]),
target: 'map',
view: new ol.View({
center: ol.proj.fromLonLat([long_deb, lat_deb]),
zoom: 15
})
});
var layer = new ol.layer.Tile({
source: new ol.source.OSM()
});
map.addLayer(layer);
var linestring = new ol.geom.LineString([[long_deb, lat_deb], [long_fin, lat_fin]], 'XY');
var lineString_feature = new ol.Feature ( {
geometry: linestring
});
var layerLine = new ol.layer.Vector({
source: new ol.source.Vector( {
features: [ lineString_feature]
})
});
map.addLayer(layerLine);
console.log(
"lineString coordinates", linestring.getCoordinates(),
"extent", linestring.getExtent(),
"layout", linestring.getLayout());
var longueur =linestring.getLength();
console.log("longueur", longueur);
</script>
and the console message (log) :
lineString coordinates Array [ Array[2], Array[2] ] extent Array [ -1.29394, 43.49829, -1.28627, 43.49858 ] layout XY
longueur 0.007675480440988747
Any idea?
Best Answer
I've found the reason : it's a projection's problem. To resolve it :