» 首頁 » 討論區 » Android程式設計 »Viewmap 取得座標

Viewmap 取得座標

發表人: 訪客
發表時間: 2011-11-03 11:12:05
我已經成功的在mapview上標記有興趣的點
設定GeoPoint的位置,然後利用Overlay指令標記出來

但我現在想嘗試另外一種功能
想在地圖上長按,然後在我常按的那個點產生新的標記
可是程式好像都沒有反應,下面是我的程式碼

public class GoogleMapExampleActivity extends MapActivity {

LinearLayout linearLayout;
MapView mapView;
ZoomControls mZoom;
Drawable mdrawable;
GeoPoint tapPoint;
@Override
public void onCreate(Bundle savedInstanceState) {
super.onCreate(savedInstanceState);
setContentView(R.layout.main);


mdrawable = this.getResources().getDrawable(R.drawable.icon);
MapOverlay mapOverlay = new MapOverlay(mdrawable);
GeoPoint tapPoint = new GeoPoint(24968134,121195464);
mapView.getController().setCenter(tapPoint);
OverlayItem overlayItem = new OverlayItem(tapPoint, "", "");
mapOverlay.addOverlayItem(overlayItem);
mapView.getOverlays().add(mapOverlay);
}
public boolean onTouch(View v, MotionEvent event) {

tapPoint = mapView.getProjection().fromPixels((int)event.getX(),(int)event.getY());
return super.onTouchEvent(event);

// 按下點的座標 = tapPoint.getLatitudeE6()/1E6
// 按下點的座標 = tapPoint.getLongitudeE6()/1E6
}

@Override
protected boolean isRouteDisplayed() {
// TODO Auto-generated method stub
return false;
}
}
發表人: Seachaos
積分: 2432
發表時間: 2011-11-04 01:50:39
這邊的話長按要自已寫
可以從MotionEvent event這下手


[sea:javaCode]
if(event.getAction()==MotionEvent.ACTION_UP&&
event.getEventTime()-event.getDownTime()>1000){
// event.getEventTime()-event.getDownTime() 是按下時間
}
[/sea]