2016-12-28 2 views
0

Wir haben eine Methode in C#, um den Geocode-Speicherort für bestimmte Adressen zu erhalten. Es funktioniert gut 99% der Zeit. Ich bin in eine interessante Situation gerannt und hoffe, dass jemand in eine ähnliche Situation gerannt ist. Ich konnte kein ähnliches Problem im BING-Forum oder durch ihre Entwicklungsressourcen finden.BING Maps API verloren Geocode

WebClient client = new WebClient(); 
client.Headers.Add("user-agent", "Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.2; .NET CLR 1.0.3705;)"); 

Stream data = client.OpenRead(uri); 
StreamReader reader = new StreamReader(data); 
string s = reader.ReadToEnd(); 

// Doing some magic with the response object here 

Der URI für diese spezifische Situation ist:

http://dev.virtualearth.net/REST/v1/Locations?q=285%20Annshelia%20Dr,%20Keswick%20ON&key=<LIVEKEY> 

Die Antwort, die wir vom Server bekommen ist:

{"authenticationResultCode":"ValidCredentials","brandLogoUri":"http:\/\/dev.virtualearth.net\/Branding\/logo_powered_by.png","copyright":"Copyright © 2016 Microsoft and its suppliers. All rights reserved. This API cannot be accessed and the content and any results may not be used, reproduced or transmitted in any manner without express written permission from Microsoft Corporation.","resourceSets":[{"estimatedTotal":0,"resources":[]}],"statusCode":200,"statusDescription":"OK","traceId":"<THE_TRACE>"} 

Es ist kein HTML-Header für „X gesetzt MS-BM-WS-INFO "so ist es kein Überlastungsproblem und wir haben einen Unternehmensschlüssel.

Der Teil, der mich interessiert, ist, wie wenn wir gehen auf die Bing Maps website und suchen Sie nach der Adresse von 285 Annshelia Dr, Keswick ON L4P 3A6, erhalten wir einen richtigen Geocode Ort.

Kann jemand etwas Licht darauf werfen, warum dies mir einen leeren Blick geben würde, wenn ich nach den Geocodes frage?

+0

Dumme Frage, aber haben Sie versucht, URL das Komma in Ihrer URI zu% 2C zu kodieren? Manchmal kann das Hinzufügen eines Kommas als Trennzeichen in einer URL anstelle des Zeichens angezeigt werden. –

+0

Danke Ryan! Selbst wenn ich die HttpUtility.UrlEncode (Adresse) in die String.Format() beim Erstellen der URI einfüge, bekomme ich immer noch die gleiche Antwort. – AngieLeigh

Antwort

0

Das Problem wurde gefunden - es war ein Schreibfehler auf dem Straßennamen.

3

Ich habe einen Blick darauf geworfen. Das Problem ist zu diesem Zeitpunkt zu erwarten. Die Bing Maps-Website verwendet derzeit einen neuen Back-End-Geocodierer mit einem neuen Datensatz. Dieser neue Geocoder durchläuft Qualitätskontrolltests und das Bing Maps-Team verwendet die Bing Maps-Website als Test-Site für diesen neuen Geocodierer. Die Bing Maps Entwickler-APIs werden im Backend aktualisiert, sobald die Qualitätskontrolle in einigen Monaten abgeschlossen ist.

+0

Wir können also nicht viel tun, wenn wir uns auf ihre API für Geocode-Standorte verlassen. – AngieLeigh

+0

Es ist merkwürdig, dass Bing ein Entwicklungs-Dataset für seine Live-Daten verwendet, die derzeit in QA sind. Vielen Dank, dass Sie sich für uns interessiert haben! Ich schätze es sehr. – AngieLeigh

+1

Der Datensatz ist kein Entwicklungsdatensatz. Es ist einfach ein aktueller Datensatz. Der ältere Geocoder benötigt mehrere Wochen, um mit Daten zu aktualisieren, wobei die neue Plattform fast sofort aktualisiert werden kann. Daher sind die neuen Daten nur im neuen Geocoder enthalten. Es hilft auch zu überprüfen, dass die Mehrheit der gemeldeten Probleme mit dem Geocodierer jetzt behoben ist. Nur eine Frage der Aktualisierung der Entwickler-APIs auf den neuen Geocoder in den nächsten Monaten. – rbrundritt