Почтовый индекс калькулятор расстояния - PullRequest
6 голосов
/ 07 июля 2011

У меня есть таблица адресов, и мне нужно вычислить расстояние между всеми их почтовыми индексами и моим почтовым индексом.Я довольно гибок в использовании используемого метода, но я надеюсь на какой-нибудь веб-сервис или математический алгоритм.Только адреса в США.В основном мне нужно ввести 2 почтовых индекса и определить расстояние между ними.

Я готов использовать формулы Excel или VBA и даже при необходимости могу написать что-то на C # .net.

Как бы вы рассчитали эти расстояния?

Ответы [ 2 ]

4 голосов
/ 07 июля 2011

Вы можете использовать широту и долготу.

Excel:

=IF(SIN(Lat1) * SIN(Lat2) + COS(Lat1) * COS(Lat2) * COS(Long1 - Long2) > 1, 
RadiusofEarth * ACOS(1), RadiusofEarth * 
ACOS(SIN(Lat1) * SIN(Lat2) + COS(Lat1) * COS(Lat2) * COS(Long1-Long2)))

VB.net импортирует System.Math

Private Function Distance(ByVal lat1 As Double, ByVal lon1 As Double, ByVal lat2 As Double, ByVal lon2 As Double, ByVal unit As String) As Double
        Dim theta As Double = lon1 - lon2
        Dim dist = System.Math.Sin(deg2rad(lat1)) * System.Math.Sin(deg2rad(lat2)) + System.Math.Cos(deg2rad(lat1)) * System.Math.Cos(deg2rad(lat2)) * System.Math.Cos(deg2rad(theta))
        dist = System.Math.Acos(dist)
        dist = rad2deg(dist)
        dist = dist * 60 * 1.1515
        Select Case unit
            Case "K"
                dist = dist * 1.609344
            Case "N"
                dist = dist * 0.8684
        End Select

        Return dist

    End Function

Другие полезные ссылки (Первая такжеупоминает альтернативы VBA)

ExcelLatLong (также упоминает альтернативы VBA)

Zips by Lat Long Lookup

VBAобсуждение

РЕДАКТИРОВАТЬ: ссылка добавлена ​​из-за комментариев обсуждение

Дополнительная информация (формула Excel)

3 голосов
/ 07 июля 2011

Это довольно просто на самом деле.Загрузите базу данных GPS-координат почтовых индексов, есть много сайтов, на которых эти данные доступны для скачивания.В них будут перечислены координаты центра почтового индекса.

Используйте формулу для расчета кратчайшего расстояния: (например: http://www.movable -type.co.uk / scripts / latlong.html )

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...