0

我正在創建一個處理興趣點的android應用程序!我還創建了一個本地數據庫,其中有一個包含關於Poi(名稱,類別,類型,經度,緯度)的所有信息的表格。 我在數據庫中添加了幾個Pois,現在我想將它們添加爲Google地圖上的標記。從sqlite數據庫中添加標記到谷歌地圖android

問題是我不知道如何完全做到這一點。我在互聯網上搜索幾個教程,但沒有任何工作,因爲我不想添加具有恆定的經度,緯度的標記,但我想從數據庫中取出它們。

另外我的數據庫方法是使用rawQuery,因爲我想返回的Pois的經度和緯度是BETWEEN兩個值,所以我無法找到如何從中獲取列以便使用它後來在創建Poi標記!

for(PoiModel poi : PoiHelper.mpoi){ 
       markerPoi = new MarkerOptions(); 
       LatLng tag = new LatLng(poi.getY(),poi.getX()); 
       markerPoi.position(tag) 
       .title(poi.getName()) 
       .snippet(poi.getCategory()); 
       map.addMarker(markerPoi); 
      } 
+0

你這樣做是爲了過濾不可見的標記,然後有一個整潔的庫用於此目的:https://code.google.com/p/android-maps-extensions/ – cYrixmorten

+0

我這樣做是因爲我想過濾得到ArrayList的結果!之後,我想將這些結果添加到地圖!但我無法弄清楚它! – gimbo

回答

1

因爲你是返回一個數組,我認爲你建議立即進行刪除做這樣的事情在你的地圖胡亞蓉:萬一

private GoogleMap mMap; 
private MapView mMapView; 
mMapView = (MapView)findViewById(R.id.map); 
mMap = mMapView.getMap(); 


for(PoiModel mypoi : poi) 
{ 
markerPOI = new MarkerOptions(); 
markerPOI .position(new LatLng(mypoi .getLatitude(),mypoi .getLongitude())) 
     .title(mypoi .getName()) 
     .snippet(mypoi .getCategory()) 

mMap.addMarker(markerPOI); 
} 
+0

我該如何做PoiModel mypoi:poi作爲一名arralist的poi是在不同的課程中?它說它不能解決... – gimbo

+0

我假設* poi *是你的迴歸arraylist。也許你可以這樣做:*(Iterator iterator = poi.iterator(); iterator.hasNext();) \t { \t \t PoiModel mypoi = iterator.next(); \t} * – Aiapaec

+0

我終於弄清楚瞭如何去做,但for語句有問題...它只能在第二次點擊OnclickListener時指定它的按鈕來運行!有任何想法嗎 ? – gimbo

0

您必須使用LatLng class,併爲其提供一個緯度和經度帶您從數據庫中獲得雙打。既然你已經有他們這樣做:

LatLng location = new LatLng(latFromDataBase,lngFromDatabase); 
Marker marker = map.addMarker(new MarkerOptions().position(location).title("some title")); 

標題部分是可選的。如果你想改變你的標誌物只是更新它的一個新的緯度和經度位置

+0

問題是如何使用Db的值提供LatLng類? – gimbo