Openlayers-3 getGeometry(). GetClosestPoint не возвращает правильную точку на трассировке GPX

После загрузки трассировки GPX в векторный слой с помощью ol.format.GPX() я хочу получить информацию о заданной точке трека, нажав на нее. Я пытаюсь сделать это с помощью getClosestPoint(), но всегда получаю точку на самом юге трассы, а не на ближайшей точке.

Код довольно прост:

map.on('click', function(e) {
  var feature = map.forEachFeatureAtPixel(e.pixel, function(feature) { return feature;});
  var pt = feature.getGeometry().getClosestPoint(e.pixel);
  var strFunc = ol.coordinate.createStringXY(4);
  var A =  strFunc(ol.proj.transform(pt, 'EPSG:3857', 'EPSG:4326'));
  info.innerHTML = A;
  console.log(pt)
}

Это похоже на работу. В журнале консоли я получаю точку с интересующей меня информацией: координаты, высота и время.

Однако эта возвращенная точка - это не точка рядом с щелчком, а всегда точка, расположенная на крайнем юге трассы.

Это ошибка или я что-то упустил?

0 ответов

Другие вопросы по тегам