私はすでに簡単な Android アプリケーションを作成しました。これには Google マップも統合されています。また、MySQL (localhost) に接続して、経度と緯度の値を使用して目的の場所を表示することもできます。私の質問は、マーカーがクリックされたときに Google マップの上に別のオーバーレイ アイテムを作成しますか (フォースクエアで何が起こるかのように)?
具体的には、地名を含むテキストを表示したい。
オーバーレイ アイテムを表示するクラスを次に示します。onTapメソッドを作ったのですが、ダイアログボックスが表示されるので、地名を表示するシンプルなテキストボックスを表示したいです。
package finddroid.map;
import java.util.ArrayList;
import android.app.AlertDialog;
import android.content.Context;
import android.graphics.Paint;
import android.graphics.Point;
import android.graphics.Rect;
import android.graphics.RectF;
import android.graphics.drawable.BitmapDrawable;
import android.graphics.drawable.Drawable;
import android.text.TextPaint;
import com.google.android.maps.GeoPoint;
import com.google.android.maps.ItemizedOverlay;
import com.google.android.maps.MapView;
import com.google.android.maps.OverlayItem;
public class CustomItemizedOverlay extends ItemizedOverlay<OverlayItem>
{
private int markerHeight;
private ArrayList<OverlayItem> mapOverlays = new ArrayList<OverlayItem>();
private Context context;
public CustomItemizedOverlay(Drawable defaultMarker)
{
super(boundCenterBottom(defaultMarker));
markerHeight = ((BitmapDrawable) defaultMarker).getBitmap().getHeight();
populate();
}
public CustomItemizedOverlay(Drawable defaultMarker, Context context)
{
this(defaultMarker);
this.context = context;
}
@Override
protected OverlayItem createItem(int i)
{
return mapOverlays.get(i);
}
@Override
public int size()
{
return mapOverlays.size();
}
@Override
//Event when a place is tapped
protected boolean onTap(int index)
{
OverlayItem item = mapOverlays.get(index);
AlertDialog.Builder dialog = new AlertDialog.Builder(context);
dialog.setTitle(item.getTitle());
dialog.setMessage(item.getSnippet());
dialog.show();
return true;
}
public void addOverlay(OverlayItem overlay)
{
mapOverlays.add(overlay);
this.populate();
}
}