Excel VBA質問箱 IV

当質問箱は、有志のボランティア精神のおかげで成り立っています。
問題が解決したら、必ずお礼をしましょうね。
本サイトの基本方針をまとめました。こちら をご一読ください。

投稿種別の選択が必要です。ご注意ください。
迷惑投稿防止のため、URLの入力を制限しています。ご了承ください。


102 / 13620 ツリー ←次へ | 前へ→

【81873】google apiを使用して2点間の最短距離を求めたいです。 サリー 21/9/12(日) 23:30 質問[未読]

【81873】google apiを使用して2点間の最短距離を...
質問  サリー  - 21/9/12(日) 23:30 -

引用なし
パスワード
   こんばんは。
google apiを使用して2点間の距離(高速道路利用しない、最短距離)を求めたいです。
高速道路利用しないに関しては解決したのですが、最短距離を出すことに苦戦しています。
最短距離を求めるオブジェクト定数optimizeWaypointsということは分かっているのですが
どこに組み込めば良いかアドバイス頂ければ幸いです。
何卒宜しくお願い致します。

【ソースコード】

Function DGMAP(origin As String, destination As String, distance As Boolean, Optional avoidHighways As Boolean = True) As String

Dim sXMLURL As String
  
sXMLURL = "maps.googleapis.com/maps/api/directions/xml?origin=" & origin & "&destination=" & destination & "&sensor=false&key=AIzaSyBd__DDpyRIC7TJHlPFE-ZoLO4blhMxOOs"

  Dim objXMLHTTP As MSXML2.ServerXMLHTTP60

  Set objXMLHTTP = New MSXML2.ServerXMLHTTP60

  With objXMLHTTP

    .Open "GET", sXMLURL, False

    .setRequestHeader "Content-Type", "application/x-www-form-URLEncoded"

    .Send

  End With


  'Debug.Print objXMLHTTP.ResponseText


  Dim domResponse As DOMDocument60

  Set domResponse = New DOMDocument60

  domResponse.LoadXML objXMLHTTP.ResponseText

  Dim ixnStatus

  Set ixnStatus = domResponse.SelectSingleNode("//status")


  If ixnStatus.Text = "OK" Then

    Dim ixnDistance, ixnDuration

    Set ixnDistance = domResponse.SelectSingleNode("/DirectionsResponse/route/leg/distance/text")

    Set ixnDuration = domResponse.SelectSingleNode("/DirectionsResponse/route/leg/duration/text")

  End If

  If IsEmpty(ixnDistance) Then

    DGMAP = "Empty"

    Exit Function

  End If

 '距離(True) または時間(False)

  If distance = True Then

    DGMAP = Left(ixnDistance.Text, InStr(1, ixnDistance.Text, " ") - 1)

  Else

    DGMAP = ixnDuration.Text

  End If

  Set domResponse = Nothing

  Set objXMLHTTP = Nothing

End Function

102 / 13620 ツリー ←次へ | 前へ→
ページ:  ┃  記事番号:
2610219
(SS)C-BOARD v3.8 is Free