我打算在asp.net web应用程序中使用以下子程序从给定地址(世界上任何地址)获取纬度和经度。例如,在保存供应商详细信息时,系统将显示具有精确纬度和经度的地图。
我们计划在我们的网络应用程序中使用谷歌地图。我相信我使用的是谷歌API版本3,每天限制为2500个请求。
如果有任何其他有效方法可以从任何世界地址获取纬度和经度,请告诉我吗?也有任何API没有请求限制,可以与谷歌一起使用。
我还需要注册Google APIv3吗?
代码:
Private Sub GetLatLongFromAddress(street As String, city As String, zipcode As String, state As String)
Dim geocoderUri As String = String.Format("http://maps.googleapis.com/maps/api/geocode/xml?address={0},{1},{2},{3}&sensor=false", street, city, zipcode, state)
Dim geocoderXmlDoc As New XmlDocument()
geocoderXmlDoc.Load(geocoderUri)
Dim nsMgr As New XmlNamespaceManager(geocoderXmlDoc.NameTable)
nsMgr.AddNamespace("geo", "http://www.w3.org/2003/01/geo/wgs84_pos#")
Dim sLong As String = geocoderXmlDoc.DocumentElement.SelectSingleNode("//geometry/location/lat", nsMgr).InnerText
Dim sLat As String = geocoderXmlDoc.DocumentElement.SelectSingleNode("//geometry/location/lng", nsMgr).InnerText
txtLat.Text = sLat
txtLon.Text = sLong
End Sub
答案 0 :(得分:0)
查看您的代码,看起来您正在执行基本操作,我不相信您可以更高效地执行此操作。地理编码是一个密集的过程。
回答您的其他问题:
不,您不需要注册使用API,但建议您使用。 资料来源:https://developers.google.com/maps/signup
免费许可证限制为每24小时2500次请求。唯一的 绕过它的方法是获得Google Maps API for Business 许可证,已支付并将限制移动到最多10万个请求。资料来源:https://developers.google.com/maps/licensing
注意:Google明确声明,如果不使用Google地图,则不得使用地理编码服务。