如何添加存储在SQLite中的地图标记? - Android

时间:2012-07-15 16:35:37

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

我有一个存储在sqlite数据库中的纬度和经度坐标。我试图通过光标检索这些并将它们全部放在地图上。我正在努力,但我是新手,需要一些帮助。这是我到目前为止所做的:

public class allmapactivity extends MapActivity {
MapController mControl;
GeoPoint GeoP;
MapView mapV;
private SQLiteAdapter mySQLiteAdapter;
Cursor cursor;

@Override
protected void onCreate(Bundle savedInstanceState) {
    // TODO Auto-generated method stub
    super.onCreate(savedInstanceState);
    setContentView(R.layout.map);
    setRequestedOrientation(ActivityInfo.SCREEN_ORIENTATION_PORTRAIT);


    mapV = (MapView) findViewById(R.id.mapview);
    mapV.displayZoomControls(true);
    mapV.setBuiltInZoomControls(true);
    mapV.setSatellite(false);

    List<Overlay> mapOverlays = mapV.getOverlays();
    Drawable drawable = this.getResources().getDrawable(R.drawable.pin);
    HelloItemizedOverlay itemizedoverlay = new HelloItemizedOverlay(drawable, this);

    cursor = mySQLiteAdapter.queueAll5();

    GeoPoint point = new GeoPoint((int) (Double.valueOf(SQLiteAdapter.KEY_CONTENT11) *1E6),(int) (Double.valueOf(SQLiteAdapter.KEY_CONTENT12) *1E6));
    OverlayItem overlayitem = new OverlayItem(point, "Test", "Test");

    itemizedoverlay.addOverlay(overlayitem);
    mapOverlays.add(itemizedoverlay);



}


@Override
protected boolean isRouteDisplayed() {
    // TODO Auto-generated method stub
    return false;
}

}

当我输入我的geopoint的静态数字时,所有这些代码都有效,除非我尝试从我的光标添加数据时强制关闭。任何帮助都会很棒!!

1 个答案:

答案 0 :(得分:0)

由于您提供的代码不从光标中获取数据,因此很难判断出现了什么问题。

一般来说,在从任何光标读取之前,您应始终调用以下代码。

cursor.moveToFirst();

这是因为不能保证指向NOT NULL的行。

如果您可以提供更多代码和/或错误消息,则可能更容易确定出现了什么问题。