将地址转换为lat / Long的Web服务

时间:2013-07-20 00:42:26

标签: vb.net web-services google-maps geolocation

我想知道是否有人知道一个好的网络服务,我可以提供一个地址,并返回十进制度的纬度/经度?我一直在尝试使用Google Maps API,但我找不到使用桌面应用程序(Winforms)返回数据的文档。我使用了WebClientWebRequest/WebResponse两种方式都没有成功。错误是'610:无效键'虽然我正盯着钥匙,只是将其复制/粘贴到参数中 - 包括制作一个新的。似乎Google不是一个简单的路线,如果可能的话,我想要一个差异选项。任何想法都会很棒。谢谢你的期待。

1 个答案:

答案 0 :(得分:2)

您正在寻找Google Geocoding API v3

桌面应用程序没有单独的东西。所以你正在寻找这个

  

https://maps.googleapis.com/maps/api/geocode/ XML ?地址=   您的编码地址& sensor = false“

以下是我在C#中使用的一个简单示例:

string address = "your address";
encodedAddress = HttpUtility.UrlEncode(address).Replace("+", "%20");
string googleApiURL = "https://maps.googleapis.com/maps/api/geocode/" + "xml?address=" + encodedAddress + "&sensor=false";
HttpWebRequest request = (HttpWebRequest)WebRequest.Create(googleApiURL);
request.Timeout = 10000;
request.Method = "GET";
WebResponse response = request.GetResponse();
if (response != null)
{
                //Parse here to to capture the lat and long
}
else
{
                //Handle if don't get response
}

对于您来说,将其转换为VB.NET并不困难。

这里的主要部分是你将如何解析XML / JSON响应,正如我在URL中已经大胆所面对的

  • Google提供两种不同的回复xmljson
  • 不要忘记对地址进行编码。

注意:使用Google Geocoding API每天的查询限制为2,500次。

希望你有所了解。