以下代码在给出地址时成功返回纬度和经度。但我想知道它每天可以使用多少次。在我的应用程序中,我想只是将坐标存储在数据库中,并在MAP中使用它们,而不是谷歌地图。下面的代码使用url,我是否必须使用webservice和API密钥实现?我对谷歌地图api的政策和使用条款感到困惑。如果有人能回答这些问题,我将感激不尽。
Dim address = "Κατεχάκη 60, Αθήνα"
Dim requestUri = String.Format("http://maps.googleapis.com/maps/api/geocode/xml?address={0}&sensor=false", Uri.EscapeDataString(address))
Dim request = WebRequest.Create(requestUri)
Dim response = request.GetResponse()
Dim xdoc = XDocument.Load(response.GetResponseStream())
Dim result = xdoc.Element("GeocodeResponse").Element("result")
Dim locationElement = result.Element("geometry").Element("location")
Dim lat = locationElement.Element("lat")
Dim lng = locationElement.Element("lng")
答案 0 :(得分:0)
如评论中所述。您可以找到使用限制here。
对于您的代码,我建议您在请求中添加UserAgent标头和其他一些标头,并使用使用语句作为响应对象。
Dim address = "Κατεχάκη 60, Αθήνα"
Dim requestUri = String.Format("http://maps.googleapis.com/maps/api/geocode/xml?address={0}&sensor=false", Uri.EscapeDataString(address))
Dim request As HttpWebRequest = WebRequest.Create(requestUri)
request.UserAgent = "Mozilla/5.0 (Windows NT 6.1; WOW64; rv:55.0) Gecko/20100101 Firefox/55.0"
request.Accept = "text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8"
request.AutomaticDecompression = DecompressionMethods.GZip Or DecompressionMethods.Deflate
request.Headers.Add("Upgrade-Insecure-Requests", "1")
Using resp As HttpWebResponse = request.GetResponse()
Using respStrm = resp.GetResponseStream()
Dim xdoc = XDocument.Load(respStrm)
Dim result = xdoc.Element("GeocodeResponse").Element("result")
Dim locationElement = result.Element("geometry").Element("location")
Dim lat = locationElement.Element("lat")
Dim lng = locationElement.Element("lng")
End Using
End Using