我目前正在使用数据列表,我的数据列之一是列表的地址。我计划在Google Map上绘制我的每个地址,但我想避免不得不手动将地址粘贴到Google中以获取参数。我需要经度,纬度。我的Excel工作表(或者我在Google文档电子表格中有此工作表)包含大约500个地址。

因此,我希望可以通过某种方式自动执行此操作?

请您参考如下方法:

礼貌的这篇文章
http://policeanalyst.com/using-the-google-geocoding-api-in-excel/

Function GoogleGeocode(address As String) As String 
Dim strAddress As String 
Dim strQuery As String 
Dim strLatitude As String 
Dim strLongitude As String 
 
strAddress = URLEncode(address) 
 
'Assemble the query string 
strQuery = "http://maps.googleapis.com/maps/api/geocode/xml?" 
strQuery = strQuery & "address=" & strAddress  
strQuery = strQuery & "&sensor=false" 
 
'define XML and HTTP components 
Dim googleResult As New MSXML2.DOMDocument 
Dim googleService As New MSXML2.XMLHTTP 
Dim oNodes As MSXML2.IXMLDOMNodeList 
Dim oNode As MSXML2.IXMLDOMNode 
 
'create HTTP request to query URL - make sure to have 
'that last "False" there for synchronous operation 
 
googleService.Open "GET", strQuery, False 
googleService.send 
googleResult.LoadXML (googleService.responseText) 
 
Set oNodes = googleResult.getElementsByTagName("geometry") 
 
If oNodes.Length = 1 Then 
For Each oNode In oNodes 
  strLatitude = oNode.ChildNodes(0).ChildNodes(0).Text 
  strLongitude = oNode.ChildNodes(0).ChildNodes(1).Text 
  GoogleGeocode = strLatitude & "," & strLongitude 
 Next oNode 
 Else 
 GoogleGeocode = "Not Found (try again, you may have done too many too fast)" 
 End If 
 End Function 
 
 
Public Function URLEncode(StringVal As String, Optional SpaceAsPlus As Boolean = False) As String 
Dim StringLen As Long: StringLen = Len(StringVal) 
 
If StringLen>0 Then 
ReDim result(StringLen) As String 
Dim i As Long, CharCode As Integer 
Dim Char As String, Space As String 
 
If SpaceAsPlus Then Space = "+" Else Space = "%20" 
 
For i = 1 To StringLen 
  Char = Mid$(StringVal, i, 1)   
  CharCode = Asc(Char) 
 
  Select Case CharCode 
  Case 97 To 122, 65 To 90, 48 To 57, 45, 46, 95, 126 
    result(i) = Char 
  Case 32 
    result(i) = Space 
  Case 0 To 15 
    result(i) = "%0" & Hex(CharCode) 
  Case Else 
    result(i) = "%" & Hex(CharCode) 
  End Select 
Next i 
URLEncode = Join(result, "") 
End If 
End Function 


评论关闭
IT干货网

微信公众号号:IT虾米 (左侧二维码扫一扫)欢迎添加!