大家好我想制作一款应用,一旦用户点击地图,它就会获得该特定点的坐标。
除此之外,我还读过:Get coordinates on tapping map in android
这似乎是最相关的帖子,但我想要做的是能够点击地图上的任何地方而不是标记/覆盖项目。事实上,我想在用户点击并获取其坐标的特定点创建一个标记。
这可能吗?
由于
麦克
答案 0 :(得分:1)
是。事实上,the answer I gave in that other question就是您所需要的。
答案 1 :(得分:0)
一点点的数学应该是微不足道的。您可以使用getLatitudeSpan()
和getLongitudeSpan()
来获取可见地图的范围,使用getMapCenter()
来查看中心点。只需将其映射到触摸事件的坐标即可。
答案 2 :(得分:0)
您需要覆盖onTouchEvent()。
我希望以下代码可以帮助你...当用户从地图上抬起手指时,使用onTouchEvent()显示......
考虑到触摸的屏幕坐标,您可以使用Projection(来自MapView上的getProjection())将其转换为纬度和经度......
@Override
public boolean onTouchEvent(MotionEvent event, MapView mapView)
{
GeoPoint point_touch;
MapController map_controller=mapView.getController();
//---when user lifts his finger---
if (event.getAction() == event.ACTION_UP) {
point_touch = mapView.getProjection().fromPixels((int) event.getX(),(int) event.getY());
Log.i("Cordinates","Lattitude="+point_touch.getLatitudeE6() / 1E6
+" Longitude="+point_touch.getLongitudeE6() /1E6 );
map_controller.animateTo(point_touch);
return true;
}
else
{
return false;
}
}