【发布时间】:2019-02-01 23:25:50
【问题描述】:
我为地址地理编码创建了一个 Excel VBA 函数。去年有效。
Google 开始了新的结算流程,但代码不起作用。
输入:地址
输出:纬度、经度
Function getGoogleMapsGeocode(sAddr As String) As String
Dim xhrRequest As XMLHTTP60
Dim sQuery As String
Dim domResponse As DOMDocument60
Dim ixnStatus As IXMLDOMNode
Dim ixnLat As IXMLDOMNode
Dim ixnLng As IXMLDOMNode
getGoogleMapsGeocode = ""
Set xhrRequest = New XMLHTTP60
sQuery = "https://maps.googleapis.com/maps/api/geocode/xml?sensor=false&address="
sQuery = sQuery & Replace(sAddr, " ", "+") & "&key=MY-API-KEY"
xhrRequest.Open "GET", sQuery, False
xhrRequest.send
Set domResponse = New DOMDocument60
domResponse.LoadXML xhrRequest.responseText
Set ixnStatus = domResponse.SelectSingleNode("//status")
If (ixnStatus.Text <> "OK") Then
Exit Function
End If
Set ixnLat = domResponse.SelectSingleNode("/GeocodeResponse/result/geometry/location/lat")
Set ixnLng = domResponse.SelectSingleNode("/GeocodeResponse/result/geometry/location/lng")
getGoogleMapsGeocode = ixnLat.Text & ", " & ixnLng.Text
End Function
我通过更改一个旧的服务器密钥让它工作,但这带来了另一个问题。
我最近注册了两个不起作用的 API 密钥。但是,旧的服务器密钥有效。 API key 和 server key 有什么区别?
【问题讨论】:
-
"代码不再工作。"不是对您的确切问题的非常有用的描述。当你运行它时会发生什么?
-
您的代码在此处可以正常工作,具有正确的地址和 api-key。可能你没有用谷歌正确设置你的 api 密钥;或者你的地址搞砸了。但是,正如@TimWilliams 所写,您的问题描述对于故障排除没有用处。
-
你试过 Postman 看看它是否有效?
标签: excel vba api geocoding api-key