2012-03-20 3 views
0

У меня есть карта из карт google, импортированных в окне изображений (масштаб 200 м = 1,5 см). Начальная точка находится в (46.46705, 15.7411) и конечной точке (46.4590, 15.75150). Это, как я вычисляется расстояние:рассчитать расстояние на карте в картинке

enter code here 
double lat1 = 46.46705 * (Math.PI/180); 
double lon1 = 15.74111 * (Math.PI/180); 
double lat2 = 46.45900 * (Math.PI/180); 
double lon2 = 15.75150 * (Math.PI/180); 
int R = 6371; 
double d; 
............................................... 
var x = (lon2 - lon1) * Math.Cos((lat1 + lat2)/2); 
var y = (lat2 - lat1); 
d = Math.Sqrt(x * x + y * y) * R; 
d *= 1000; // get km 
d = Math.Round(d, 2); // decimals 
...................................... 

Я спрашиваю, как рассчитать расстояние между началом и случайной «конечной» точки, которая меньше конечной точки (конец расстояния)? Начальная точка находится в координатах (49,49), конечная точка находится в координатах (291,328). У меня нет никакой другой информации. Спасибо вам за помощь.

ответ

0

Похоже, вам необходимо преобразовать координаты изображения в lat/long перед выполнением вашей функции.

Это можно сделать с помощью linear interpolation, чтобы перейти от горизонтальной координаты к долготе и вертикальной координаты к широте.

+0

Хорошо, спасибо за помощь. – Iposify