Editer: On dirait que la clé API n'est plus nécessaire.
Vous pouvez utiliser REST APIs et analyser la réponse (XML/JSON/CSV).
http://maps.google.com/maps/geo?q=State+St,+Troy,+NY&output=csv&oe=utf8&sensor=false
génèrerait:
200,6,42.730070,-73.690570
Ce qui est:
- - G_GEO_SUCCESS
- - niveau de la rue précision
- 42.730070 - La latitude
- -73,690570 - Longitude
Si vous n'êtes pas familier avec les API de System.Net, ils iraient quelque chose comme ceci:
const string GeoCodeUrlFormat = "http://maps.google.com/maps/geo?q={0}&output=csv&oe=utf8&sensor=false";
string location = "State St, Troy, NY";
string url = String.Format(GeoCodeUrlFormat, HttpUtility.UrlEncode(location));
HttpRequest request = (HttpWebRequest)HttpWebRequest.Create(url);
HttpResponse response = (HttpResponse)request.GetResponse(); // Can throw an exception
Stream responseStream = response.GetResponseStream();
using (StreamReader reader = new StreamReader(responseStream)
{
string firstLine = reader.ReadLine();
string[] lineParts = firstLine.Split();
GeolocationResult result = GoogleMapper.MapGeolocationResult(lineParts);
// TADA
}
De toute évidence il n'y a pas d'erreur Il ne gère pas les valeurs de retour multiples et je n'ai pas implémenté MapGeolocationResult, mais il devrait vous aider à démarrer.
Grande réponse merci.Cependant, une partie du problème est que je voudrais utiliser V3 (pas v2) de l'API car il ne nécessite plus la clé API. L'application sera déployée sur plusieurs clients et la clé API devrait être liée à un serveur Web, mais ce ne sera pas le cas pour une application Windows Forms ... – Marc
On dirait qu'ils ont supprimé cette exigence sur les services en tant que Je viens de supprimer l'argument clé et il a renvoyé les données correctes. –
Oui, vous avez raison. Donc je vais l'utiliser ensuite. J'espère que ça reste comme ça ... – Marc