android 获取google mapview上某点的经纬度数据是相当简单的,只需要重写ItemizedOverlay类的onTap(GeoPoint p, MapView mapView)函数,p.getLatitudeE6(),p.getLongitudeE6()分别获取纬度和经度的函数。在重写onTap方法时,还需要定位一个点作为参考点,就是说先定位地图的某一点,然后再点击获取其他点的经纬度。 ItemizedOverlay有两个onTap函数分别是onTap(GeoPoint p, MapView mapView)和onTap(int index)。简单的区别就是onTap(int index)处理点击一个点的item,即点中某个图标触发的事件(不点中图标则不处理),如弹出提示信息,如果点中则返回true否则返回 false;onTap(GeoPoint p, MapView mapView)就是处理tap事件的,即是不管点不点中图标的区域都执行,点击在图标区域内返回true,区域外返回false。 要获取google mapview上的某点的经纬度就要重写onTap(GeoPoint p, MapView mapView)方法,因为该方法点击mapview任何一点都会触发事件,并传递GeoPoint参数。根据GeoPoint对象可以转换该点的经纬度。 以下是本例的效果图及源码。 ![]() 图-1 点击地图获取经纬度功能 1.ClickMapviewActivity .java 2.MyItemizedOverlay.java 3.main.xml |