地图应用一般都有 map上面一个大头针,然后拖拽缩放地图 获取到大头针所在的坐标和位置信息。 可惜国内对google map的介绍太少了,我原本是这样做的 , 在
mGoogleMap.setOnCameraMoveListener(this);的回调:
@Override
public void onCameraMove() {
centerPoint1 = mGoogleMap.getProjection().fromScreenLocation(getScreenMetrics(MapsActivity.this));
// Toast.makeText(MapsActivity.this,centerPoint1.latitude+"---"+centerPoint1.longitude,Toast.LENGTH_SHORT).show();
// mete(centerPoint1);
}中实时获取位置 然后用
try {
addresses = geocoder.getFromLocation(centerPoint.latitude, centerPoint.longitude, 1);
}catch (Exception e){
}得到当前位置,不过太卡了,因为稍微移动一点点就执行获取位置的函数了,移动一里面能计算几百次,太卡了,性能差点的手机还会直接卡死崩掉,在网上找手指滑动结束的监听,真的是看了好多也没找到,算了,自己找了,我给google map的所有带有setonXXXXXXListener的方法都设置进去,然后在各自的回调里吐司对应的XXXXXX,还真让我找到了,是它是它就是它——————
mGoogleMap.setOnCameraIdleListener(this);
这个的回调监听
@Override
public void onCameraIdle() {
// Toast.makeText(MapsActivity.this,"onCameraIdle",Toast.LENGTH_SHORT).show();
if(null != centerPoint1){
mete(centerPoint1);
}
}就是监听停止拖动地图后的!
google也真是 我天真的以为监听拖拽地图的函数名字应该是 onDragEnd、onDragfinish之类的,没想到是个这 ,涨姿势了。
顺带多说一句,google map控件已经把onTouchEvent、GestureDetector等屏幕手势操作都拦截了处理了,你在mapActivity中是很难监听到自己写的手势监听事件的。。。