Size: a a a

2021 November 17

А

Алексей in Mapbox чат
Я не читал всю историю сообщений, но я так понял, что у человека есть проблема с поиском кратчайших расстояний на сфере.
Я учусь на картографа, поэтому, возможно, могу что-то спросить у преподавателей по мат.части или сам могу что-то подсказать. В чём именно возникла проблема?
источник

o

oxid in Mapbox чат
Привет
источник

o

oxid in Mapbox чат
У меня проблема в том что точка которая возвращается из turf.along не лежит на отрезках которые рисует мапбокс из того же geojson
источник

o

oxid in Mapbox чат
Но вроде разобрались
источник

А

Алексей in Mapbox чат
Подскажи, пожалуйста, какая система координат используется в проекте? Очень часто она указывается с помощью кода EPSG.
источник

o

oxid in Mapbox чат
Хм, вообще умолчательная,  ничего никуда не конвертируется. Как она точно называется не скажу
источник

o

oxid in Mapbox чат
Но кстати надо разобраться
источник

А

Алексей in Mapbox чат
Да, это точно правильный совет. Расчёт расстояний в географической системе координат (просто WGS 84, например), очень неэфективен, и более того, не рекомендуется в принципе, так как даёт существенные неточности. Расстояния нужно считать в спроецированных (Projected) координатных системах. Почти все из них работают с метрами. Пример такой системы координат - WGS 84 Pseudo Mercator (используется в Google Maps или в OpenStreetMap по умолчанию) либо WGS 84 World Mercator (используется в Yandex.Maps).
источник

BT

Basil Titovchenko in Mapbox чат
Возможно, пригодится:
http://turfjs.org/docs/#greatCircle
источник

А

Алексей in Mapbox чат
Да, вероятно, именно эта функция вычисляет ортодрому - линию кратчайшего расстояния между двумя точками на сфероиде.
источник

А

Алексей in Mapbox чат
Да, всё правильно. Функция along использует спроецированную систему координат (на это указывают единицы измерения в документации - miles), и тогда расчёт будет верным. Применять функцию along для работы с географическими координатами, похоже, ошибочно.
Great Circle работает с географическими координатами и как раз используется для вычисления расстояний на эллипсоиде вращения.
источник

o

oxid in Mapbox чат
Мм, такс, на самом деле мне надо чтобы маркер оказывался на той линии которую рисует мапбокс. Кажется рисовать lineString с greatCircle между всеми парами вершин - будет намного медленнее. Меня в целом устривает такая аппроксимация которую дает мапбокс. Но как заставить along двигать точку по ней? В этом загвоздка. Еще кажется оно проявляется на довольно больших расстояниях.
источник

o

oxid in Mapbox чат
Я думаю что у меня WGS 84 Pseudo Mercator
источник

o

oxid in Mapbox чат
Я так и хочу сделать. Мне на самом деле все равно ее придется переписывать. так как задача - сделать плавные перемещения вдоль линии, для более менее длинных треков надо делать какое-то индексирование, потому что сейчас алонг пробегает каждый раз весь трек
источник

A

Alex CherryTea in Mapbox чат
Если сделать соединения между точками правильные (по кратчайшему пути) это мало того что будет корректно, так ещё заодно сделает анимацию более плавной за счёт увеличения количества точек
источник

o

oxid in Mapbox чат
возможно что эффект будет обратный, так как оно съест оочень много памяти
источник

o

oxid in Mapbox чат
ну и кстати оно не будет правильным, у меня точки это координаты с устройств, телефонов и  iot, и промежуточные значения как не апроксимируй они не будут на реальные похожи
источник

A

Alex CherryTea in Mapbox чат
Не будет, я 500 мегабайт геоджксона на карту загружаю, делаю джойны на фронте, и все работает быстро
источник

o

oxid in Mapbox чат
попробую )
источник

f

fr1 in Mapbox чат
заходишь такой на сайт, а там время ожидания загрузки 3 дня
источник