邮政编码距离计算器

时间:2011-07-07 15:16:49

标签: excel vba distance zipcode

我有一个地址电子表格,我需要计算所有邮政编码和我的邮政编码之间的距离。我对使用的方法相当灵活,但我希望有某种web服务或数学算法。仅美国地址。基本上我需要输入2个邮政编码并缩短它们之间的距离。

我愿意使用Excel公式或VBA,如果需要,我甚至可以用C#.net编写代码。

你将如何计算这些距离?

2 个答案:

答案 0 :(得分:4)

您可以使用纬度和经度。

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 discussion

编辑:由于评论讨论而添加链接

More Info(Excel Formula)

答案 1 :(得分:3)

实际上这很简单。下载邮政编码的GPS坐标数据库,有很多网站可以下载这些数据。他们会列出邮政编码中心的坐标。

使用公式计算最短距离:(例如:http://www.movable-type.co.uk/scripts/latlong.html