以下のコードを使用して、C#.Net で緯度と経度を取得しました。しかし、場合によっては間違った緯度/経度を提供します。たとえば、「Braås skola Växjö Sweden」を検索すると、[56.879004,14.805852] が表示されます。これは、検索したものではなく、Växjö の緯度/経度です! では、この問題を解決して正確な緯度/経度を取得するにはどうすればよいでしょうか。この問題は、「Braås förskola 44:an VÄXJÖ」、「Björkens förskola VÄ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]));
}
より良い解決策を得るのを手伝ってください。