2013-05-08 81 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