私たちはルート最適化サービスを運営しています。これらのルートは通常、小さな地域で 1 日に数回 100 件以上の配達を伴います。多くの配達が同じ郵便番号に存在する場合があります。
そのため、MapPoint を使用してウェイポイントを追加し、郵便番号と通り名/番地で実行を最適化します。
問題は、FindAddressResults()
不適切な通りの名前で有効な郵便番号を指定して MapPoints 関数を呼び出すと、郵便番号が無視され、別の場所 (多くの場合、数百マイル離れたランダムな町) で通りの名前が検索されることです。
現在、ショップにデータの品質を改善するよう依頼することはできますが、これが確実に行われることは決してありません。
私の質問:を呼び出すときにFindAddressResults()
、郵便番号よりも通り名を優先するデフォルトの動作とは対照的に、通り名よりも郵便番号を優先させる方法はありますか?
使用例(これはVB6で書かれています(尋ねないでください)-しかし、例/情報は役に立ちます):
'#### GeoCode using postcode & streetname
Set oResults = oMap.FindAddressResults(rsRequest("Request_Address"), , , , rsRequest("Request_Postalcode"))
If oResults.Count = 0 Then
'#### Nothing was found, GeoCode using postcode only
Set oResults = oMap.FindAddressResults(, , , , rsRequest("Request_Postalcode"))
End If
私が考えることができる唯一のことは、「最大距離」変数を設定することです.oResults []の最初の(最も一致する)アイテムがそのしきい値を超えている場合、デフォルトで郵便番号のみの検索になりますが、それはせいぜい失敗です.
EDIT 1 - これを思いついたところ、問題なく動作するようです:
Set oResults = oMap.FindAddressResults(rsRequest("Request_Address"), , , , rsRequest("Request_Postalcode"))
If oResults.ResultsQuality <> geoFirstResultGood Then
echo (rsRequest("Request_Address") & " + " & rsRequest("Request_Postalcode") & " had poor results (" & CStr(oResults.ResultsQuality) & "), using postcode only instead...")
Set oResults = oMap.FindAddressResults(, , , , rsRequest("Request_Postalcode"))
End If