Android:得到正确的lat和long,但标记打印在错误的位置

时间:2011-02-23 16:17:45

标签: android google-maps android-mapview

我正在“Göteborg”中取出所有商店,并在我的mapView上添加一个标记。 问题在于,使用此代码,我的标记会在非洲聚集。

我已经检查过坐标是否正确所以不是。

任何人都知道问题是什么?

    df = ((ClassHandler)getApplication()).getStoreDatabadeFacade();

    Cursor plotstore = df.getAllStorePos("Göteborg");
    startManagingCursor(plotstore);
    plotstore.moveToFirst();

    while(plotstore.isAfterLast() == false){

        GeoPoint addStore = new GeoPoint(plotstore.getColumnIndex("lat"), plotstore.getColumnIndex("long"));
        //OverlayItem overlayitem = new OverlayItem(addStore, plotstore.getString(plotstore.getColumnIndex("_ID")), plotstore.getString(plotstore.getColumnIndex("ADDRESS")));
        OverlayItem overlayitem = new OverlayItem(addStore, plotstore.getString(plotstore.getColumnIndex("_id")), plotstore.getString(plotstore.getColumnIndex("address")));

        itemizedStoreOverlay.addOverlay(overlayitem);
        storeOverlays.add(itemizedStoreOverlay);
        plotstore.moveToNext();
    }

1 个答案:

答案 0 :(得分:0)

getColumnIndex是否只返回cursor内的列索引,而不是该索引处的值?您似乎正在为id

正确使用它
plotstore.getString(plotstore.getColumnIndex("_id"))

但不适用于latlong

plotstore.getColumnIndex("lat")

尝试将此更改(以及"long")更改为:

plotstore.getInt(plotstore.getColumnIndex("lat"))