2012-09-24 109 views
1

所以我試圖使用Bing Maps AJAX API(v7)的搜索模塊,並且我注意到in the Interactive SDK for it您可以傳入一個名爲bounds的屬性,您可以給它一個邊界框內搜索。這個例子在理論上簡單地使用地圖的當前邊界框,如果放大,新的搜索應該只是在放大的區域內顯示結果,對嗎?Bing Maps API v7限制

那麼這裏的問題:添加以下代碼在交互式SDK中的示例代碼結尾:

Microsoft.Maps.Events.addHandler(map, 'viewchange', searchRequest); 

這是什麼應該做的是每次的地圖或縮放走動的時間或那麼它應該使用地圖的新邊界區域進行新的搜索......我之所以這樣說,是因爲看起來像這樣的一行:bounds: map.getBounds(),。實際發生的是它在放大之前會反彈回最初的位置。

叫我瘋了,但bounds財產剛被完全忽略?有誰知道如何將搜索結果限制在當前可見的地圖區域?

最後:它只是我,還是V7的API文檔而不完整?通過檢查Chrome控制檯中沒有出現在API文檔中的內容,我設法找到了一些內容。

更新:這是我給搜索函數調用的樣子:

searchManager.search({ 
    bounds: map.getBounds(), 
    callback: searchSuccess, 
    count: 20, 
    entityType:"Business", 
    errorCallback: searchFail, 
    startIndex: 0, 
    userData: userData, 
    what: what, 
    where: search 
}); 
+0

The doc。是相當完整的,但請記住在尋找類功能時,要確保您正在查看地圖類的正確版本。例如,版本6.0/7.0映射類函數非常相似,但它們的語法和類路徑卻有很大不同。 – clamchoda

+0

我確實在看v7.0(請參閱我的OP中的交互式SDK鏈接),實際上...我上面提供的示例是在交互式SDK中,因此與v7.0無關。 – Remy

+0

對不起雷米我應該更具體!我的意思是說MSDN有兩套相當完整的文檔,以及遷移。我曾經從6.0升級到7.0,這非常有幫助! http://msdn.microsoft.com/en-us/library/dd877180.aspx – clamchoda

回答

2

我沒有親自使用的觀點改變我不知道這是可用的,當我從6.0遷移。

我會分享一條替代路線,我可以完成這個任務。

我的搜索功能還將Microsoft.Maps.Pushpin放在用戶搜索的位置(「您在這裏!」)。

我然後我從圖釘創建一個邊界:

var viewBoundaries = Microsoft.Maps.LocationRect.fromLocations(pushpin.getLocation()); 

那麼對於邊界設置Map.setView屬性。 (藏漢在我的情況下縮放)

map.setView({ bounds: viewBoundaries }); 
map.setView({ zoom: 10 }); 

如果你沒有使用圖釘,你可以簡單地創建從位置類視圖邊界。

MSDN Location Class

+0

這實際上是我如何顯示我地圖上的所有針腳。我遇到的問題是,即使我在調用'searchManager.search'函數時傳入了'bounds'屬性(它在Interactive SDK中使用),它不會在這些邊界內進行搜索。我會更新我的OP與我的搜索電話的外觀。 – Remy

+0

雷米對不起,我剛剛注意到你的評論,因爲有人投票。你知道了嗎?如果不是,您嘗試搜索的「邊界」是什麼?地圖上的多邊形,視圖邊界等? – clamchoda