У меня есть карта, на которой в данный момент я часто помещаю на карту свой собственный пин-код, исходя из GPS-позиции пользователя, это также зависит от того, когда изменяется его положение, но с GPS, который здесь немного нестабильныйэто довольно много.В данный момент новый значок ставится на карту каждый раз, когда это происходит.Я хочу удалить предыдущий контакт, чтобы на карте отображался только один контакт для местоположения пользователя, как в реальном времени для представления местоположения пользователя.
В дополнение к этому.Можно ли иметь отдельный набор пинов на карте (которые никогда не изменяют их позиции) и гарантировать, что они также не очищаются при обновлении пользовательской позиции.
Будут признательны за любые другие комментарии к коду.
Imports...
public class MapOne extends MapActivity implements LocationListener {
... fields
@Override
protected void onCreate(Bundle icicle) {
....onCreate initialisations
}
@Override
protected void onPause() {
// TODO Auto-generated method stub
compass.disableCompass();
lm.removeUpdates(this);
super.onPause();
}
@Override
protected void onResume() {
// TODO Auto-generated method stub
compass.enableCompass();
lm.requestLocationUpdates(LocationManager.GPS_PROVIDER, 1000, 20, this);
super.onResume();
}
@Override
protected boolean isRouteDisplayed() {
return false;
}
public void onLocationChanged(Location l) {
// TODO Auto-generated method stub
lat = (int)(l.getLatitude() *1E6);
longi = (int)(l.getLongitude() *1E6) ;
GeoPoint ourLocation = new GeoPoint(lat, longi);
OverlayItem overlayItem = new OverlayItem(ourLocation, "Hey!", "What's up!?");
CustomPinpoint custom = new CustomPinpoint(customMarker, Map.this);
custom.insertPinpoint(overlayItem);
overlayList.add(custom);
}
}
Точный класс для справки, если требуется.
public class Pinpoint extends ItemizedOverlay<OverlayItem> {
private ArrayList<OverlayItem> pinpoints = new ArrayList<OverlayItem>();
private Context c;
public CustomPinpoint(Drawable defaultMarker) {
super(boundCenter(defaultMarker));
// TODO Auto-generated constructor stub
}
public CustomPinpoint(Drawable m, Context context) {
// TODO Auto-generated constructor stub
this(m);
setC(context);
}
@Override
protected OverlayItem createItem(int i) {
// TODO Auto-generated method stub
return pinpoints.get(i);
}
@Override
public int size() {
// TODO Auto-generated method stub
return pinpoints.size();
}
public void insertPinpoint(OverlayItem item) {
pinpoints.add(item);
this.populate();
}
public Context getC() {
return c;
}
public void setC(Context c) {
this.c = c;
}
}