Viewmap 取得座標
發表人:
訪客
我已經成功的在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;
}
}
設定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
積分: 2432
這邊的話長按要自已寫
可以從MotionEvent event這下手
如
[sea:javaCode]
if(event.getAction()==MotionEvent.ACTION_UP&&
event.getEventTime()-event.getDownTime()>1000){
// event.getEventTime()-event.getDownTime() 是按下時間
}
[/sea]
可以從MotionEvent event這下手
如
[sea:javaCode]
if(event.getAction()==MotionEvent.ACTION_UP&&
event.getEventTime()-event.getDownTime()>1000){
// event.getEventTime()-event.getDownTime() 是按下時間
}
[/sea]