【问题标题】:Get Geopoints from SQlite DB从 SQlite DB 获取地理点
【发布时间】:2011-08-19 12:57:47
【问题描述】:

我创建了一个 SQlite 数据库来存储所有纬度和经度,以便在地图中显示它们。对于我没有遇到任何问题的值的添加,我使用了以下代码:

CoordBD CoordBd = new CoordBD(this);
Coordo coordo = new Coordo(36.869686,10.315642 );
CoordBd.open();
CoordBd.insertCoordo(coordo);

但我不知道如何将它们一一插入到地图中,我通常/手动制作:

GeoPoint point2 = new GeoPoint(microdegrees(36.86774),microdegrees(10.305302));
pinOverlay.addPoint(point2);

如何浏览所有数据库并自动添加所有地理点? 谢谢你。 编辑:这是真的吗?

CoordBD CoordBd = new CoordBD(this);
        CoordBd.open();
        Coordo coordo = new Coordo(36.869686,10.315642 );
        CoordBd.insertCoordo(coordo);
        CoordBd.close();

        maMap = (MapView)findViewById(R.id.myGmap);
        maMap.setBuiltInZoomControls(true);
        ItemizedOverlayPerso pinOverlay = new ItemizedOverlayPerso(getResources().getDrawable(R.drawable.marker));

        String[] result_columns = new String[] {COL_LATI, COL_LONGI};
        Cursor cur = db.query(true, TABLE_COORD, result_columns,
        null, null, null, null, null, null);
        cur.moveToFirst();
        while (cur.isAfterLast() == false) {
                int latitude = cur.getColumnIndex("latitude");
                int longitude = cur.getColumnIndex("longitude");
                GeoPoint point = new GeoPoint(microdegrees(latitude),microdegrees(longitude));
                pinOverlay.addPoint(point);
            cur.moveToNext();
        }
        cur.close();

【问题讨论】:

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


    【解决方案1】:

    引用我在android-developers Google Group 上给您的回复,因为you elected to cross-post

    1. Cursor 传递给您的 ItemizedOverlay,其中包含从您的数据库中检索到的坐标

    2. 在您的ItemizedOverlay 中实现size() 以从Cursor 返回getCount()

    3. ItemizedOverlaymoveToPosition() 上的Cursor 中实现getItem(),读出纬度和经度,转换为微度,创建GeoPoint,并返回它

    4. 在您的MapView 上使用ItemizedOverlay

    【讨论】:

    • 马克·墨菲 ;)。正如我在那里所说的,你能给我发一个如何用 Java 代码制作它的链接吗?
    • 所有步骤以及如何将它们转换为 Java 代码。如果有一些示例,它将是 100% 清楚的。
    • @androniennn:嗯,坦率地说,这并不难。您声称已经知道如何使用数据库以及如何使用ItemizedOverlay。如果这些说法属实,那么以这种方式将它们捆绑在一起对您来说应该不是特别困难。我没有一个数据库支持的ItemizedOverlay 的例子——也许你可以通过谷歌搜索找到一个。
    • 请看我编辑的帖子。你对代码有什么看法?正确的?非常感谢。
    • 我有一个由这条线引起的 FC:Cursor cur = db.query(true, TABLE_COORD, result_columns, 有什么想法吗??
    猜你喜欢
    • 1970-01-01
    • 2012-03-03
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-07-07
    • 2019-12-22
    • 2015-05-16
    • 2012-09-21
    相关资源
    最近更新 更多