ExcelVBA에서 GoogleAPI 호출 (GoogleMap)
8455 단어 ExcelVBA
주요 흐름
· "http://www.geocoding.jp/에서 경도, 위도 검색 (XML로 수신)
http://www.geocoding.jp/api?v=1.1&q=(주소 설정)
· GoogleMap에 속성을 전달하여 WebBrowser 객체에 표시합니다.
http://maps.google.com/maps/api/staticmap?size=600x600&zoom=(확대율)&sensor=false&markers=(위 geocoding에서 얻은 경도, 위도 정보)&maptype=(표시 형식)
※표시 형식에 대해서
roadmap… 도로 지도 보기:
satellite… 항공 사진:
hybrid… 일반 뷰와 항공 사진 뷰의 복합 뷰
terrain… 물리지도
샘플
소스 코드
Private Sub okButton_Click()
SpinButton1.Enabled = True
no = 10
Dim xmldoc As MSXML2.XMLHTTP
Dim myUri As String
Set xmldoc = CreateObject("MSXML2.XMLHTTP")
If addressTextBox.Text = "" Then
MsgBox "正確な住所を入力してください。"
Exit Sub
End If
'住所から座標を取得
myUri = "http://www.geocoding.jp/api?v=1.1&q=" & addressTextBox.Text
xmldoc.Open "POST", myUri, False
xmldoc.send (Null)
Dim doc As MSXML2.DOMDocument
Set doc = CreateObject("MSXML2.DOMDocument")
doc.LoadXML (xmldoc.responseText)
Dim myNodes As MSXML2.IXMLDOMNodeList
Set myNodes = doc.SelectNodes("result/coordinate")
Dim i As Integer
For i = 0 To myNodes.Length - 1
myLatitude = myNodes(i).ChildNodes(0).Text
myLongitude = myNodes(i).ChildNodes(1).Text
Next
Call Exe_Map
End Sub
'GoogleMapを表示
Private Sub Exe_Map()
myAddressCoodinatePosition = myLatitude & "," & myLongitude
Dim googleUri As String
Dim myGoogleMapsUri As String
Dim googleXmldoc As MSXML2.XMLHTTP
Set googleXmldoc = CreateObject("MSXML2.XMLHTTP")
'GoogleMapを表示
googleUri = "http://maps.google.com/maps/api/staticmap?size=600x600&zoom=" & no & "&sensor=false&markers=" & myAddressCoodinatePosition & "&maptype=" & myMapType
WebBrowser.Navigate googleUri
End Sub
'地図の縮小
Private Sub SpinButton1_SpinDown()
If no <= 10 Then
no = 10
Exit Sub
Else
no = no - 1
Call Exe_Map
End If
End Sub
'地図の拡大
Private Sub SpinButton1_SpinUp()
no = no + 1
Call Exe_Map
End Sub
'道路地図ビュー(roadmap)
Private Sub OptionButton1_Click()
okButton.Enabled = True
myMapType = OptionButton1.Caption '値=roadmap
Call Exe_Map
End Sub
'航空写真(satellite)
Private Sub OptionButton2_Click()
okButton.Enabled = True
myMapType = OptionButton2.Caption '値=satellite
Call Exe_Map
End Sub
'通常のビューと航空写真ビューの複合ビュー(hybrid)
Private Sub OptionButton3_Click()
okButton.Enabled = True
myMapType = OptionButton3.Caption '値=hybrid
Call Exe_Map
End Sub
'物理地図(terrain)
Private Sub OptionButton4_Click()
okButton.Enabled = True
myMapType = OptionButton4.Caption '値=terrain
Call Exe_Map
End Sub
실행 결과
Reference
이 문제에 관하여(ExcelVBA에서 GoogleAPI 호출 (GoogleMap)), 우리는 이곳에서 더 많은 자료를 발견하고 링크를 클릭하여 보았다 https://qiita.com/tyakokukki/items/931f7c5169c03b92fcf7텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
우수한 개발자 콘텐츠 발견에 전념 (Collection and Share based on the CC Protocol.)