2013-11-18 3 views
1

Я хочу знать, если метод distanceTo() возвращает метрах от линейного расстояния или реального расстояния, которое вы должны проехать от местоположения А на участке В.Возвращает метод distanceTo() для вычисления расстояния между двумя точками, метров от линейного расстояния?

Моя мысль в том, что это линейное расстояние, но я не Это точно.

Знаете ли вы, что это точно?

+0

Это абсолютно линейное расстояние. – faylon

ответ

0

Расстояния, предоставляемые всеми способами, например. карты google, класс местоположения и т. д. из точки A в точку B состоит из нескольких меньших прямых линий. Полилинейная линия. , поэтому от A до B можно было бы сказать: A, D, E, F, B. В таком случае A-D будет линейной прямой - расстоянием лайнера. D-E снова является линейным расстоянием.

Когда вы сложите все линейные расстояния, вы получите фактическое расстояние от вождения от А до В.

0

От the docs:

Возвращает приблизительное расстояние в метрах между этим адресом и данным место нахождения. Расстояние определяется с использованием эллипсоида WGS84.

Таким образом, это расстояние по поверхности эллипсоида.

Чтение исходного кода для Location.java, с API 18 метод distanceTo вызывает частный метод computeDistanceAndBearing. На самого начало этого метода вы можете найти этот комментарий:

// Based on http://www.ngs.noaa.gov/PUBS_LIB/inverse.pdf 
// using the "Inverse Formula" (section 4) 

Это итерационный метод (п = 20). Вы можете проверить этот документ, чтобы увидеть формулу, которую они используют.

Смежные вопросы