从sqlite数据库android添加标记到谷歌地图

时间:2014-03-04 22:39:02

标签: android sqlite google-maps google-maps-markers google-maps-api-2

我正在创建一个处理兴趣点的Android应用程序!我还创建了一个本地数据库,其中有一个表格,其中包含有关Poi(名称,类别,类型,经度,纬度)的所有信息。 我在数据库中添加了几个Pois,现在我想在谷歌地图上添加它们作为标记。

问题是我不知道该怎么做。我在互联网上搜索了几个教程,但没有任何作用,因为我不想添加经度,纬度不变的标记,但我想从数据库中取出它们。

我的db方法也使用rawQuery,因为我希望返回的Pois的经度和纬度在两个值之间,所以我无法找到如何从中获取列以便以后使用它在创建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);
            }

2 个答案:

答案 0 :(得分: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 );
}

答案 1 :(得分:0)

你必须使用LatLng class并为它提供一个lat和lng,以及你从数据库中获得的双打。既然你已经拥有它们,就这样做:

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

标题部分是可选的。如果您想更改标记,只需使用新的lat和lng更新其位置