在android中点击地图获取坐标
Posted
技术标签:
【中文标题】在android中点击地图获取坐标【英文标题】:Get coordinates on tapping map in android 【发布时间】:2011-05-09 19:17:43 【问题描述】:我正在尝试做这样的事情:我有一个地图活动,当用户点击地图时,它会显示该位置的坐标。我已经覆盖了 onclick 方法,但它甚至没有被调用。有什么想法吗?
public class MapPoint extends MapActivity implements OnClickListener
@Override
public void onCreate(Bundle savedInstanceState)
super.onCreate(savedInstanceState);
setContentView(R.layout.mappoints);
MapView map = (MapView)findViewById(R.id.mapview);
map.setOnClickListener(this);
map.setBuiltInZoomControls(true);
map.getController().setZoom(18);
map.getController().setCenter(new GeoPoint(39735007, -8827330));
@Override
protected boolean isRouteDisplayed()
// TODO Auto-generated method stub
return false;
public void onClick(View arg0)
Toast.makeText(this, "text", Toast.LENGTH_SHORT);
【问题讨论】:
this will help sure.. 【参考方案1】:使用 android Maps v2 的现代答案是使用 OnMapClickListener,它为您提供在地图上点击的 LatLng。
https://developer.android.com/reference/com/google/android/gms/maps/GoogleMap.OnMapClickListener.html
【讨论】:
【参考方案2】:试试这个:
private class OverlayMapa extends Overlay
@Override
public void draw(Canvas canvas, MapView mapView, boolean shadow)
...
@Override
public boolean onTap(GeoPoint point, MapView mapView)
Context contexto = mapView.getContext();
String msg = "Lat: " + point.getLatitudeE6()/1E6 + " - " +
"Lon: " + point.getLongitudeE6()/1E6;
Toast toast = Toast.makeText(contexto, msg, Toast.LENGTH_SHORT);
toast.show();
return true;
【讨论】:
【参考方案3】:我在这个问题中加入了一些我的实现细节: How do I respond to a tap on an Android MapView, but ignore pinch-zoom?
我发现使用 onTap() 的问题是当你捏缩放时它也会被触发,这不是我的应用所需要的。所以如果你需要捏缩放,我的代码应该能满足你的需要。
【讨论】:
【参考方案4】:就像@CommonsWare 说的,你需要使用onTouch()
函数而不是onClick()
。这是一个示例,这正是您所需要的:http://mobiforge.com/developing/story/using-google-maps-android
【讨论】:
【参考方案5】:试试下面的。
编写一个派生自Overlay 类的类并覆盖onTap() 方法。然后您可以将您的叠加层添加到您的MapView。 GeoPoint 对象,表示您点击的位置,当您在地图上的某个位置点击时,将传递给 onTap() 方法。
【讨论】:
【参考方案6】:onClick()
此处未使用。您将需要覆盖onTouchEvent()
。 Here is a sample project 显示使用 onTouchEvent()
拖放 ItemizedOverlay
地图图钉。
给定触摸的屏幕坐标,您可以使用Projection
(来自MapView
上的getProjection()
)将其转换为纬度和经度。
【讨论】:
以上是关于在android中点击地图获取坐标的主要内容,如果未能解决你的问题,请参考以下文章