2012-07-13 68 views
0

我已经使用下面的代码获取了C#.Net中的经度和纬度。但在某些情况下,它提供了错误的经度/纬度。例如,如果我搜索“BraåsskolaVäxjöSweden”,它提供了[56.879004,14.805852],这是韦克舍的纬度/经度不是我们搜索的!那么我们如何解决这个问题才能得到精确的纬度/经度。这个问题发生在很多情况下,比如“Braåsförskola44:一个VÄJJÖ”,“BjörkensförskolaVÄJJÖ”。Google Maps API网络服务不提供准确的纬度经度

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])); 
} 

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

回答

0

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

+0

但是,在地理编码中,服务每日限制非常低1000而不是2500! – Surinder 2012-07-24 09:30:12

+0

也许吧,但是你想要的东西是一个地方,而不是一个地点。 – 2012-07-24 09:32:43

相关问题