я пытаюсь нарисовать строку, используя те же координаты, которые используются для рисования коллекции маркеров на карте. Маркеры отрисовываются, затем lineString должен рисовать соединение маркеров, lineString использует те же координаты, что и маркеры.
Однако у меня возникают странные проблемы, иногда рисуются все линии, иногда рисуется только одна из линий. но обычно будет отсутствовать одна или две строки. когда я запускаю getCoordinates() для lineString, он возвращает мне все те же координаты, что и местоположения маркеров, но некоторые линии не рисуются.
некоторый код:
// location data, contains x/y coords
var locs = JSON.parse(loc_data);
var lineCoords = [];
var lat;
var lng;
// loop through loc data and output the markers
for (var key in locs) {
if (locs.hasOwnProperty(key)) {
lat = locs[key].lat;
lng = locs[key].lng;
// store the coords in an array to be used for the lineString
lineCoords.push([lat,lng]);
// create marker and add to map
var iconFeature = new ol.Feature({
geometry: new ol.geom.Point([lat, lng]),
});
var vectorSource = new ol.source.Vector({
features: [iconFeature]
});
var vectorLayer = new ol.layer.Vector({
source: vectorSource
});
map.addLayer(vectorLayer);
}
}
// draw lineString using coordinates in lineCoords array
var line = new ol.geom.LineString(lineCoords);
var layerLines = new ol.layer.Vector({
source: new ol.source.Vector({
features: [new ol.Feature({
geometry: line,
name: 'Line'
})]
}),
});
map.addLayer(layerLines);
приведенный выше код кажется довольно логичным, я не вижу, где с ним может быть проблема, и, как говорится, иногда рисуются все линии, а иногда только одна.
кто-нибудь может пролить свет на это?
[lat, lon]
, измените на[lon, lat]
. - person Jonatas Walker   schedule 20.08.2015