Android点按地图并获取坐标

时间:2011-02-03 22:15:44

标签: android overlay coordinates android-mapview google-maps-markers

大家好我想制作一款应用,一旦用户点击地图,它就会获得该特定点的坐标。

除此之外,我还读过:Get coordinates on tapping map in android

这似乎是最相关的帖子,但我想要做的是能够点击地图上的任何地方而不是标记/覆盖项目。事实上,我想在用户点击并获取其坐标的特定点创建一个标记。

这可能吗?

由于

麦克

3 个答案:

答案 0 :(得分:1)

是。事实上,the answer I gave in that other question就是您所需要的。

答案 1 :(得分:0)

一点点的数学应该是微不足道的。您可以使用getLatitudeSpan()getLongitudeSpan()来获取可见地图的范围,使用getMapCenter()来查看中心点。只需将其映射到触摸事件的坐标即可。

编辑:Mark一如既往地拥有更优雅的解决方案。

答案 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;
            }

         }