Google Maps API网络服务无法提供准确的纬度经度

时间:2012-07-13 12:40:54

标签: google-maps google-places-api google-geocoding-api

我使用下面的代码在C#.Net中获取经度和纬度。但在某些情况下,它提供了错误的纬度/经度。例如,如果我搜索“BraåsskolaVäxjöSweden”,它提供[56.879004,14.805852]这是Växjö的纬度/经度而不是我们搜索的内容!那么我们如何解决这个问题以获得精确的纬度/经度。在许多情况下都会出现这个问题,例如“Braåsförskola44:VÄXJÖ”,“BjörkensörskolaVÄXJÖ”。

private const String _googleUri = "http://maps.google.com/maps/geo?q=";
private const String _googleKey = "yourkey";
private const String _outputType = "csv";

private static Uri GetGeocodeUri(String address) {
    address = HttpUtility.UrlEncode(address);
    return new Uri(String.Format("{0}{1}&output={2}&key={3}", _googleUri, 
address, _outputType, _googleKey));
}
public static Coordinate GetCoordinates(String address) {
    WebClient client = new WebClient();
    Uri uri = GetGeocodeUri(address);    
    String[] geocodeInfo = client.DownloadString(uri).Split(',');
    return new Coordinate(Convert.ToDecimal(geocodeInfo[2]), Convert.ToDecimal(geocodeInfo[3]));
}

请帮助我找到更好的解决方案。

1 个答案:

答案 0 :(得分:0)

请求places - 服务而不是地理编码。