从地址获取纬度和经度

时间:2013-12-27 13:02:04

标签: asp.net vb.net

我打算在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

1 个答案:

答案 0 :(得分:0)

查看您的代码,看起来您正在执行基本操作,我不相信您可以更高效地执行此操作。地理编码是一个密集的过程。

回答您的其他问题:

注意:Google明确声明,如果不使用Google地图,则不得使用地理编码服务。