Расчет расстояния с использованием широты в таблице - PullRequest
0 голосов
/ 13 июня 2018

У меня есть файл данных с миллионами строк с lat и long столбцами как 2 поля в столбцах.

Хотел бы спросить, есть ли какие-либо способы для вычисления общего расстояниядля (например, Модель X "Индекс 0 -> Индекс1, Индекс 1 -> Индекс 3") с использованием поля lat long

Index,Model,lat,long
0,X,1.3539,103.84
1,X,1.3545,103.84
2,Y,1.3839,103.7002
3,X,1.3548,103.84
4,Y,1.3831,103.71
5,Z,1.3139,103.88

Пожалуйста, дайте совет!

Ответы [ 2 ]

0 голосов
/ 18 июня 2018

Несмотря на то, что вы, безусловно, можете выполнять геопространственные геометрические вычисления в виде кальков в Таблице, для больших наборов данных и масштабируемой производительности лучше всего хранить данные в базе данных со встроенной геопространственной функциональностью.После этого вы сможете получить эффективный доступ к этой функции из Таблицы - хотя вам может понадобиться использовать пользовательский SQL, если драйвер базы данных Таблицы еще не имеет собственного доступа к геопространственным функциям вашей конкретной базы данных.Не очень большая проблема,

Некоторые базы данных с геопространственной поддержкой - это PostGIS, Oracle и SQL Server.

0 голосов
/ 13 июня 2018

Эта формула будет рассчитывать расстояние.Но чтобы это работало, вам нужно либо использовать функцию lookup () для просмотра следующей строки, либо как-то повернуть данные, чтобы у вас было два набора координат в одной строке.

3959 * ACOS 
( 
SIN(RADIANS([Lat])) * SIN(RADIANS([Lat2])) + 
COS(RADIANS([Lat])) * COS(RADIANS([Lat2])) * COS(RADIANS([Long2]) - RADIANS([Long])) 
)
...