2013-05-08 82 views
0

我想在地圖上添加一個透明按鈕,並在點擊此按鈕時獲取精確的位置。我也想打開地圖上的長按對話框。我正在使用一個單獨的自定義覆蓋類來實現一個地圖。像如何在點擊按鈕時獲得精確位置

public class AddItemizedOverlay extends ItemizedOverlay<OverlayItem> { 


     RelativeLayout mainRelativeLayout; 
     ScrollView scroll; 

. 
. 
. 

@Override 
     public boolean onTouchEvent(MotionEvent event, MapView mapView) 
     { 
    //  Log.i("onTouch()", "Performed on map"); 
      if (event.getAction() == 1) {     
       GeoPoint geopoint = mapView.getProjection().fromPixels(
        (int) event.getX(), 
        (int) event.getY()); 
       // latitude 
       double lat = geopoint.getLatitudeE6()/1E6; 
       // longitude 
       double lon = geopoint.getLongitudeE6()/1E6; 

. 
. 
. 
      Pick_Drop_Dialog p_dialog = new Pick_Drop_Dialog(context,mapView); 
      p_dialog.showDialog().show(); 

} 
} 

在這裏我得到這個對話框onTouch()MapView類的事件,但我需要在地圖上的LongTap此對話框(注:圖中onLongTap,諾伊圖標)請幫我

+0

我猜它的android谷歌地圖v1,對不對?或其v2? – Arefin 2013-05-08 09:56:56

+0

我使用我在2012年12月之前創建的一個密鑰,因此它必須是API v1,因爲v2在2012年12月發佈。解決方案是什麼?這是不是達到此目的的原因? – Maddy 2013-05-08 10:18:11

+0

現在我在使用API​​ v2 map key嗎?我改變我的V1 = - > V2 – Maddy 2013-05-08 10:36:14

回答

0

如果我根據評論正確地解決了問題,我想你應該看看this link

對於Android Google Maps v2,我認爲您可以按照此tutorial。本教程簡明扼要,請參閱本教程的第3部分,您會發現覆蓋圖在v2中可能看起來多餘。

我想下一個更大的問題將產生的API密鑰,請通過這個video。到目前爲止,我所見過的最好的。

請注意,在v2中,您無法在模擬器中看到地圖,您將需要一個真實的設備來查看地圖。

+0

試試這個:if(event.getAction()== MotionEvent.ACTION_DOWN){long longPressTime = event.getEventTime(); }否則如果(event.getAction()== MotionEvent.ACTION_UP) { longPressTime = event.getEventTime() - longPressTime; \t如果(longPressTime> 2000)//2秒 \t {//做任何}} – Maddy 2013-05-09 09:31:09

+0

@Maddy沒有能夠解決問題了嗎?如果是,那麼請將您的答案添加到答案字段並接受相同的答案。 – Arefin 2013-05-09 15:56:35

+0

我有一個在android 2.2版本中創建的應用程序,並使用谷歌地圖api v1。現在我想使用gmap api v2,這可能嗎? – Maddy 2013-05-27 10:16:42