2016-12-28 104 views
0

我們在C#中的方法來獲得對某些地址的地理編碼位置。它在99%的時間內很好地工作。我遇到了一個有趣的情況,希望有人遇到類似的情況。我在BING論壇或通過他們的開發資源找不到類似的問題。Bing地圖API失落地理編碼

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 

的URI這個具體情況是:

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

,我們從服務器得到的響應是:

{"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>"} 

有對「X-沒有設定HTML頭MS-BM-WS-INFO「,所以它不是一個過載問題,我們確實有一個企業密鑰。

我感興趣的部分是,如果我們轉到Bing Maps website並搜索285 Annshelia Dr,Keswick ON L4P 3A6的地址,我們會得到正確的地理編碼位置。

任何人都可以闡明爲什麼這會是讓我迷惑的眼神時,我問了地址解析一些輕?

+0

愚蠢的問題,但你有沒有試過URL編碼在URI到%2C逗號?有時添加逗號可以被視爲URL中的分隔符而不是char。 –

+0

謝謝瑞恩!即使在創建URI時將HttpUtility.UrlEncode(address)添加到String.Format()中,我仍然得到相同的響應。 – AngieLeigh

回答

0

問題已被發現 - 這是在街道名稱拼寫錯誤。

3

我已經看到了這個。這個問題預計在這個時候。 Bing Maps網站目前正在使用具有新數據集的新後端地理編碼器。這款新的地理編碼器正在進行質量控制測試,Bing Maps團隊正在使用Bing Maps網站作爲此新地理編碼器的測試站點。一旦質量控制測試在幾個月內完成,Bing Maps開發人員API將在後端進行更新。

+0

所以沒有太多可以做,如果我們依靠自己的API地理編碼位置? – AngieLeigh

+0

很奇怪,Bing會爲其當前在QA中的實時數據使用開發數據集。非常感謝您爲我們尋找這個!對此,我真的非常感激。 – AngieLeigh

+1

數據集不是開發數據集。它只是一個更新的數據集。舊的地理編碼器需要數週才能更新數據,因爲新平臺可以幾乎立即更新。因此,新數據只在新的地理編碼器中。這也有助於驗證過去與地理編碼器報告的大多數問題現在已經解決。只是在未來幾個月內將開發者API更新爲新的地理編碼器。 – rbrundritt