2

我應該在地圖上顯示一組標記以指示附近的興趣點。這些標記將通過點擊打開公共聊天室,因此我認爲用戶在進入該房間之前應該看到有關每個標記的簡短地址信息,而無需點擊標記。不過,如果我更改標記圖標在這個意義上,一些標誌物可能會衝突,你可以看到如下:如何消除Google地圖中的碰撞標記

enter image description here

我想要做的是顯示儘可能多的標記沒有碰撞什麼,更換圖標與像一個點一個非常小的標記(任何地址信息),這些碰撞的國家:

enter image description here

我實現通過執行x軸掃描算法來檢測碰撞得到這個結果,但不幸的是,如果一個標記在用戶滾動地圖o後停止碰撞它從屏幕上存在,或者另一個標記進入屏幕並開始與其他標記相沖突,或者用戶滾動到一個全新的區域,..這個算法應該在每一回閤中一次又一次地執行。爲了消除大部分碰撞標記,我使用了maps-utils標記聚類,但是我需要一種更加艱苦的方法來解決這個問題。我考慮實施四叉樹,但我無法確定它是否是最好的方式。有什麼建議?

例子:

enter image description here

回答

0

谷歌地圖Android的標記羣集工具從 https://developers.google.com/maps/documentation/android-api/utility/marker-clustering做到這一點。

+0

我在問題中提到過它。我不希望看到標記重疊,就像這樣:https://tctechcrunch2011.files.wordpress.com/2015/02/citymaps.jpg?w=687標記聚類不能做同樣的事情。請參閱您發送的鏈接中的第一張圖片。雖然有一些很好的羣集,但也有重疊的標記。 –

+0

對不起,我匆匆一瞥。儘管如此,我還以爲你可以修改集羣代碼呢? (它是github上的開源代碼)... – SteelBytes

+0

實際上,最好的方法之一是將最小簇大小設置爲1,然後將多元簇指定爲點。 –

1

恕我直言,最好的方式可以結合縮放級別,四叉樹和碰撞檢測。所以,在這種情況下

在這裏,四叉樹將用於減少項目(標記)的大小來執行碰撞檢測算法。因爲你應該只關注附近的標記,而不是單獨的整個標記。

如果檢測通過縮放級別碰撞項目(不是唯一可見的區域/界限像你一樣),你會不會,如果一個標記停止用戶滾動地圖或後碰撞面下方

相關問題它存在於屏幕上或其他標記進入屏幕並開始與其他標記碰撞或用戶滾動到一個全新的區域