2012-02-17 5 views
1

У меня есть экземпляр GeoCoordinate от Bing Maps Silverlight control. Я пытаюсь нарисовать линию на контроле карты на данном подшипнике.Inverse of the System.Device.Location.GeoCoordinate.GetDistanceTo() Метод

Мой текущий подход заключается в следующем:

  1. выяснить расстояние подходит для текущей ZoomLevel.
  2. Соедините это расстояние с подшипником, чтобы найти соответствующий пункт назначения GeoCoordinate.
  3. Добавить MapPolyline от источника GeoCoordinate к целевому GeoCoordinate в MapLayer.

Метод GetDistanceTo выполняет обратную операцию, но я не могу найти метод, который принимает подшипник и расстояние, и приводит к созданию GeoCoordinate.

Есть ли способ, который я могу назвать с помощью источника GeoCoordinate, подшипника и расстояния, который найдет назначение GeoCoordinate?

+0

Мой текущий подход к рисованию линии для подшипника, кажется, хорошо работает при приближении к Уровням увеличения. Однако по мере того, как карта уменьшает то, что было на расстоянии 101,64 градуса, переход от того, что он находится чуть ниже востока, чуть выше него. Оказывается на больших расстояниях подшипники значительно различаются - http://www.movable-type.co.uk/scripts/latlong.html#bearing. –

ответ

1

В заглушке ответа, позволяет предположить, что структура не в настоящее время метода для нахождения GeoCoordinate заданного:

  • ориджин GeoCoordinate,
  • подшипника,
  • и расстояния до путешествовать.

В этом случае C# Geodesy Library for GPS – Vincenty’s Formulae является хорошим местом для получения кода для расчета. Я еще не понял, какую модель эталонной эллипсоиды использовать, чтобы метод GetDistanceTo() мог отменить операцию.

Мне все еще интересно, существует ли какая-либо встроенная поддержка для решения того, что я сейчас знаю, называется First geodetic problem.