SQLite データベースから Google マップにマーカーを広告しようとしています。データベースから緯度と経度を確認できるリストビューがあります。だから私はdbが働いていることを知っています。私はJavaとAndroidが初めてです。しかし、良くなることを願っています。私のコードが正しいかどうかわからないので、助けが必要です..これは私が書いたコードです:
リスト mapOverlays = mapView.getOverlays();
Drawable herUAre = this.getResources().getDrawable(R.drawable.ic_launcher);
CurrentLocationOverlay currentLocationOverlay = new CurrentLocationOverlay(herUAre);
OverlayItem currentLocation = new OverlayItem(point, "Current Location", "Latitude : " + latitude + ", Longitude:" + longitude);
currentLocationOverlay.addOverlay(currentLocation);
mapOverlays.clear();
mapOverlays.add(currentLocationOverlay);
}
上記のコードは、ピンで現在の位置を示しています IT WORKS :-)
以下のコードは、どのように仕事をするのかわかりません?????
public ArrayList<OverlayItem> getLocations()
{
ArrayList<OverlayItem> locations = new ArrayList<OverlayItem>();
String[] tableColumns = new String[]{"_id", "address", "description", "latitude", "longitude"};
Cursor cursor = db.query("spots", tableColumns, null, null, null, null, null);
cursor.moveToFirst();
do{
String adress = (cursor.getString(cursor.getColumnIndex("adress")));
String description = (cursor.getString(cursor.getColumnIndex("description")));
String lat1 = (cursor.getString(cursor.getColumnIndex("latitude")));
Double lat = Double.parseDouble(lat1);
String long1 = (cursor.getString(cursor.getColumnIndex("longitude")));
Double lon = Double.parseDouble(long1);
GeoPoint point = new GeoPoint((int) (lat * 1E6),(int) (lon * 1E6));
locations.add(new OverlayItem(point, adress, description));
}
while (cursor.moveToNext());
return locations;
}
// missing some code here to ad to my CurrentLocationOverlay class ore do i have to make a
//new class for this ??
これは CurrentLocationOverlay.class です
public class CurrentLocationOverlay extends ItemizedOverlay<OverlayItem> {
private ArrayList<OverlayItem> mOverlays = new ArrayList<OverlayItem>();
public CurrentLocationOverlay(Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
}
@Override
protected OverlayItem createItem(int i) {
return mOverlays.get(i);
}
@Override
public int size() {
return mOverlays.size();
}
public void addOverlay(OverlayItem item){
mOverlays.add(item);
setLastFocusedIndex(-1);
populate(); // Calls the method createItem()
}
@Override
protected boolean onTap(int arg0) {
Log.d("Tapped", mOverlays.get(arg0).getSnippet());
return true;
}
}