0

緯度と経度の座標が 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;
}

}

このコードはすべて、ジオポイントに静的な数値を入力すると機能しますが、カーソルからデータを追加しようとすると強制的に閉じられます。どんな助けでも素晴らしいでしょう!!

4

1 に答える 1

0

提供したコードはカーソルからデータを取得しないため、何が問題なのかを判断するのは困難です。

一般的に言えば、カーソルから読み取る前に、常に以下のコードを呼び出す必要があります。

cursor.moveToFirst();

これは、NOT NULL である行を指していることが保証されていないためです。

より多くのコードやエラー メッセージを提供できれば、何が問題なのかを正確に判断しやすくなります。

于 2012-07-15T17:36:28.783 に答える