Вот Реализация C#:
static class DistanceAlgorithm
{
const double PIx = 3.141592653589793;
const double RADIUS = 6378.16;
/// <summary>
/// Convert degrees to Radians
/// </summary>
/// <param name="x">Degrees</param>
/// <returns>The equivalent in radians</returns>
public static double Radians(double x)
{
return x * PIx / 180;
}
/// <summary>
/// Calculate the distance between two places.
/// </summary>
/// <param name="lon1"></param>
/// <param name="lat1"></param>
/// <param name="lon2"></param>
/// <param name="lat2"></param>
/// <returns></returns>
public static double DistanceBetweenPlaces(
double lon1,
double lat1,
double lon2,
double lat2)
{
double dlon = Radians(lon2 - lon1);
double dlat = Radians(lat2 - lat1);
double a = (Math.Sin(dlat / 2) * Math.Sin(dlat / 2)) + Math.Cos(Radians(lat1)) * Math.Cos(Radians(lat2)) * (Math.Sin(dlon / 2) * Math.Sin(dlon / 2));
double angle = 2 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
return angle * RADIUS;
}
}
Я бы порекомендовал немного другое решение:
для ссылки на страницы Wiki из комментариев XML Это не совсем то, что вы хотели, но я надеюсь, что это будет полезно.
Если перечисленных выше элементов недостаточно, пытались ли вы просто создать собственное преобразование XSLT в выбранную вами разметку вики?
Вы можете написать простое приложение на .NET (или выбрать платформу по своему выбору) для преобразования формата doc XML в формат wiki XML. Вам все равно придется обновлять вики с выходными файлами вручную.