我遇到了一些與Android MapView API有關的問題。我從我希望在MapView中顯示的數據庫中獲取OverlayItems。如果我顯示100個圖標,我沒有問題,但是如果它變得更多 - 就像一個城市中的500個項目 - 它首先看起來非常糟糕,而其次是它減慢了很多。不幸的是我的目標是顯示10000個。我認爲一個解決方案可以是向ZoomLevels註冊一個偵聽器,以使它們出現/消失,但我找不到該功能。其次,我找不到用縮放地圖縮放覆蓋圖的功能。 任何想法都非常歡迎如何在Android MapView中顯示數千個OverlayItems
回答
在ItemizedOverlay繪製方法中存在一個非常奇怪的行爲。當你說:畫線從(x,y)到(x1,y1)時,繪製方法被調用大約20-30-40次 - 我不知道爲什麼。當你繪製一條線時,可以接受,但是當你繪製成千上萬條線條,圖標等時,這是非常糟糕的!要解決這個問題,你應該創建一個緩存覆蓋。這是疊加,捕捉第一次繪製,創建對象,然後防止未來繪製相同的繪製。
集羣是一個圖標後面的十幾個圖標。例如,如果地圖上有1000個標記,則在特定的最小縮放級別下,不能分別看到每個標記 - 它會變成一團亂七八糟的圖標和顏色等等。而不是一個接一個非常非常接近的100個標記,而是放置一個簇標記。在放大時,移除這個簇並創建另一個簇...執行此操作,直到標記變得足夠遠,並且您可以看到它們被分開。
謝謝你的解釋,我現在有一個想法,我必須做的。 你是否願意在每個不同的drawable上添加一個帶有defaultMarker的ItemizedOverlay,或者如果我將CachedDrawable設置爲OverlayItem的ImageResource,我就好了? – 2011-06-16 14:33:32
我沒有得到這個。你能再解釋一下嗎,對不起。例如: – 2011-06-16 14:46:59
:如果我創建一個新的ItemizedOverlay,我通常會在其構造函數中傳遞一個defaultMarker,該構造函數用於每個OverlayItem。 如果我有10個OverlayItems,我可以將它們添加到ItemizedOverlay。他們都會將defaultMarker設置爲Drawable。如果我想在一個特殊的OverlayItem中使用一個不同的Icon,我可以在OverlayItem的實例上調用setMarker(Drawable d)。 所以我只有一個ItemizedOverlay,但每個OverlayItem都有自己的標記,它指向一個cachedDrawable – 2011-06-16 14:57:07
採取以下方法:
- 創建一個緩存的疊加,以防止同一集羣的多個描繪;
- 在線程中繪製;
- 根據縮放級別和標記接近程度對您的標記進行聚類。
- 每次在覆蓋圖中繪製時,檢查確定是屏幕可見部分內的當前標記。如果不是,不要畫!
嗯,THX對於這個問題的答案第一。但我真的不明白你的答案。什麼是緩存覆蓋和集羣,以及如何做到這一點? – 2011-06-16 09:44:58
我的應用程序中的圖標大小和縮放級別有類似的問題。我最終做的是有兩套包含標記的疊加層,一個帶有「放大」圖標和一個帶有「縮小」圖標。然後在某個縮放級別改變疊加層(使用縮放滾輪 - On zoom event for google maps on android)
- 1. 在android中顯示數千個ImageViews
- 2. Android Mapview:控制多種OverlayItems的排序?
- 3. Android:如何檢查MapView上OverlayItems的可見性
- 4. MapView未顯示android
- 5. 在MapView中創建一個自定義Popup的點擊OverlayItems
- 6. 如何管理在mapview上加載數千個註釋
- 7. 在mapview中顯示動態標題android
- 8. 如何在CardView中顯示MapView?
- 9. 如何在mapview中顯示pin註釋?
- 10. Android MapView顯示黑屏
- 11. 向MapView添加OverlayItems真的很慢,如何讓它更快?
- 12. 如何在android mapview中精確顯示當前位置?
- 13. 如何顯示數千條記錄
- 14. 如何顯示數千條記錄?
- 15. iPhone:在MapView中顯示UIPopoverController
- 16. Android:如何選擇和顯示數千條記錄
- 17. 在Android上顯示陰影方塊MapVIew
- 18. MapView顯示空白
- 19. 如何在iOs中的mapview上顯示單個位置?
- 20. 如何在Android上使用MapView顯示離線OpenStreetMap?
- 21. Android。如何顯示MapView與嵌套在TabHost上的ViewPager
- 22. MapView顯示黑屏
- 23. mapView顯示白屏
- 24. 顯示鞦韆gui中的字符數
- 25. MapView只顯示squres
- 26. 的DataGridViewCellStyle顯示千
- 27. 在MapView上顯示多個位置 - NEWBIE
- 28. 在鞦韆上顯示HTML5
- 29. 錯誤顯示的MapView到Android的
- 30. 以千分之一秒顯示結果,lacs,千分之一android
檢查了這一點http://stackoverflow.com/questions/7447350/android-maps-point-clustering – weakwire 2011-09-16 16:16:31