2011-12-12 75 views
0

我的問題是,在Android程序的谷歌地圖上設置多個標記的最佳方式是什麼?我有一個SQLite數據庫,每個標記都有經度和緯度。谷歌地圖Android - 設置太多標記

  1. 例如1公里添加的所有標記當前位置周邊的
  2. 獲取經度的範圍和緯度上移動這個範圍之間的地圖,顯示標記

我怎樣才能得到經度的範圍和緯度?

+0

如果您可以添加一些更清楚的問題是什麼。你問如何繪製大量的標記和最有效的方法來做到這一點?或者你是否要求替代地圖繪製地圖上的每個標記? –

+0

我正在做一些巴士旅行的程序。我有一個約600點的經緯度數據庫,巴士停下來。我想繪製GoogleMap上的所有點。如果在繪製所有標記的同時應用程序將非常緩慢。我在問如何以最有效的方式繪製所有標記。例如,目前在美國有位置的用戶(例如)對來自歐洲的標記不感興趣。我的第一個想法是打印當前用戶位置1公里左右的所有標記,以防止不繪製標記,以防用戶在地圖上看不到或者沒有用處。 –

回答

0

基於從上面你需要做以下評論:

1)使用Google Api maps reference for Android,以確定在地圖上的可見區域,如果你有一個點爲所確定的區域內。

2)小心刪除添加到地圖但不再需要的點。 (IE用戶移動了地圖)。此時請小心,不要在地圖更新完成之前刪除點,因爲用戶可能會點擊某個點並導致應用程序崩潰。

3)決定你在做什麼有關縮放級別,如果用戶放大右出,那麼你需要做以下之一:

一)顯示什麼,給用戶的反饋來拉近點。 b)使用一種算法來繪製一個點的平均點。 c)顯示與b相同的標記,但居中顯示該區域中具有點數的區域。

關於以前的問題,我會提供很多research on stack,因爲已經詳細介紹了該主題。

對於c)已經有一個很好的iOS實現,它現在是一個待售圖書館,但是這個圖書館的名字此刻就轉義了我。我被告知實施非常好。

我不能充分表達您需要確保您的地圖操作是異步完成的,謹慎或者陷入大量的陷阱。

+0

我決定使用JavaScript和WebView使用Google Maps API3。我使用JavaScript獲取邊界(var bounds = map.getBounds();)。比我得到(var ne = bounds.getNorthEast();)和(var sw = bounds.getSouthWest();)和比.lat()和.lng()從這兩個變量,我發送這個變量數據庫查詢,但它不工作。查詢是否正確? Cursor cursor = this.db.rawQuery(「SELECT * FROM town WHERE town_lat> =」+ SwLat +「AND town_lat <=」+ NeLat +「AND town_lon> =」+ SwLng +「AND town_lon <=」+ NeLng,null ); –