達成したいのは、マップに2種類のマーカーを表示することです。それを行うデータベース(から引き出されたイベント表示onLocationChanged中にitemizedOverlayを削除する
1)赤マーカー - itemizedOverlay)を
2)動的地図上にユーザの位置を表示するオレンジマーカー(itemizedOverlay2)。
ItemizedOverlayを使用して、2つの異なるレイヤー(イベント用とユーザー用)を用意していますが、ユーザーの位置を示すダイナミックマーカーに問題があります。
問題:
何が起こることLocationListenerが正常に緯度/経度を取得し、地図上のポイントを配置が、前のポイントがまだ存在しています。だから、私はユーザーの場所を示すマーカーの道を持っています。
私はインターネットを検索したが、onLocationChangedの呼び出し中に何も起こらない方法をいくつか実装しました。
class myLocationListener implements LocationListener{
OverlayItem overlayItem;
@Override
public void onLocationChanged(Location location) {
if (location != null){
mapOverlays.remove(itemizedOverlay2);
mapView.invalidate();
lat = location.getLatitude();
longi = location.getLongitude();
GeoPoint point = new GeoPoint((int) (lat * 1E6), (int) (longi * 1E6));
mControl.animateTo(point);
overlayItem = new OverlayItem(point, "My Location", "This is probably where you are");
itemizedOverlay2.addOverlay(overlayItem);
mapOverlays.add(itemizedOverlay2);
}
}
私はあなたが私のコードの多くを必要とするが、ちょうど私はそれが間違って取得していますどこの誰かが見ているかどうかを確認し、このブロックで滞在させ可能性があることを知っています。
ありがとうございます。
このリンクはあなたに役に立つかもしれません:[アンドロイドをMapViewはマーカーを削除できません](http://stackoverflow.com/a/4634287/3577656)。 – Rajal