0
地図上で長時間触れると新しい場所を追加したいが、問題はオーバーレイを追加するときに地図を移動できないことだ。コードは以下の通りです。マップ上でアイテム化されたオーバーレイを制御するにはどうすればいいですか?
public class CustomPinPointOverlay extends ItemizedOverlay<OverlayItem> {
private GeoPoint newMarkerLocation;
public CustomPinPointOverlay(GeoPoint newMarkerLocation,
Drawable defaultMarker) {
super(boundCenterBottom(defaultMarker));
this.newMarkerLocation = newMarkerLocation;
populate();
}
@Override
protected OverlayItem createItem(int i) {
return new OverlayItem(this.newMarkerLocation, null, null);
}
public void draw(android.graphics.Canvas canvas, MapView mapView,
boolean shadow) {
super.draw(canvas, mapView, false);
}
@Override
public int size() {
return 1;
}
}
これはitemizedoverlayを拡張するオーバーレイクラスです。コードの他の部分は、
public PMapView(Context context, AttributeSet attrs) {
super(context, attrs);
setOnTouchListener(new OnTouchListener() {
int x, y;
long start, stop;
@Override
public boolean onTouch(View v, MotionEvent e) {
if (e.getAction() == MotionEvent.ACTION_DOWN) {
start = e.getEventTime();
x = (int) e.getX();
y = (int) e.getY();
touchedPoint = map.getProjection().fromPixels(x, y);
}
if (e.getAction() == MotionEvent.ACTION_UP) {
stop = e.getEventTime();
}
if (stop - start > 1000) {
setEnabled(true);
Drawable myMarker = getResources().getDrawable(
R.drawable.yeni_pin);
getOverlays().add(
new CustomPinPointOverlay(touchedPoint, myMarker));
return false;
}
return true;
}
});
}
このコードにはどのような問題がありますか?
私の問題は私のsetOnTouchListenerです。私の意見では、私は長い間クリックするまで私のタッチを聞いています。私がstop-start> 1000を除いて何もしなければ、私のsetontouchlistenerは私がそれをするまで聞いていきます。私は正しい? – sharp