在Google地图v1上绘制来自数据库的纬度和经度

时间:2013-03-18 15:18:58

标签: android database geolocation maps overlay

我正在开发一个应用程序,我想从地图上的数据库中绘制纬度和经度。在我的数据库模式中,我有三列:

Name | Latitude | Longitude

我可以在ArrayList中从SQLite中检索数据,但我面临的问题是我应该如何在Google地图上显示这些值以及存储在数据库中的位置名称?另外,如何绘制从起始地点到结束地点的路径。

1 个答案:

答案 0 :(得分:0)

我通过创建逐项覆盖类

来使我的代码正常工作
package com.rahul.besttracker;

import java.util.ArrayList;

import android.app.AlertDialog;
import android.content.Context;
import android.graphics.drawable.Drawable;

import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.OverlayItem;

public class HelloItemizedOverlay extends ItemizedOverlay {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
Context mContext;

public HelloItemizedOverlay(Drawable defaultMarker) {
    super(boundCenterBottom(defaultMarker));
    // TODO Auto-generated constructor stub
}

public HelloItemizedOverlay(Drawable defaultMarker, Context context) {
    super(boundCenterBottom(defaultMarker));
    mContext = context;
}

@Override
protected OverlayItem createItem(int i) {
    return mOverlays.get(i);
}

@Override
public int size() {
    return mOverlays.size();
}

public void addOverlay(OverlayItem overlay) {

    mOverlays.add(overlay);
    populate();
}

@Override
protected boolean onTap(int index) {
    OverlayItem item = mOverlays.get(index);
    AlertDialog.Builder dialog = new AlertDialog.Builder(mContext);
    dialog.setTitle(item.getTitle());
    dialog.setMessage(item.getSnippet());
    dialog.show();
    return true;
}

}

我在我的主类中创建了一个这样的实例,每次我需要添加一个项目来覆盖我称为添加覆盖功能。最后我在地图上绘制了叠加层