6

住所のスプレッドシートがあり、すべての郵便番号と私の郵便番号の間の距離を計算する必要があります。私は使用する方法にかなり柔軟性がありますが、ある種のWebサービスまたは数学アルゴリズムを望んでいます。米国の住所のみ。基本的に、2つの郵便番号を入力してそれらの間の距離を取得する必要があります。

私はExcelの数式またはVBAを使用したいと思っており、必要に応じてC#.netで何かをコーディングすることもできます。

これらの距離をどのように計算しますか?

4

2 に答える 2

4

LatitudeとLongitudeを使用できます。

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の代替案についても言及)

LatLongLookupのZips

VBAディスカッション

編集:コメントディスカッションのためにリンクが追加されました

詳細(Excel式)

于 2011-07-07T15:30:22.363 に答える
3

実はとても簡単です。郵便番号のGPS座標のデータベースをダウンロードします。このデータをダウンロードできるサイトはたくさんあります。彼らは郵便番号の中心の座標をリストします。

数式を使用して最短距離を計算します:(例:http ://www.movable-type.co.uk/scripts/latlong.html )

于 2011-07-07T15:23:33.990 に答える