我一直在尝试使用Google Maps V2进行一些教程和基本练习,而且我遇到了“setOnMyLocationChangeListener”方法发生的事情。
我正在运行以下代码:
this.mMap.setOnMyLocationChangeListener(new OnMyLocationChangeListener() {
@Override
public void onMyLocationChange(Location location) {
int lat = (int) (location.getLatitude() * 1E6);
int lon = (int) (location.getLongitude() * 1E6);
Toast.makeText(
GoogleMapsV2_Interact.this,
"Coordss\n" + "Lat: " + lat + "\n" + "Lon: " + lon + "\n" ,
Toast.LENGTH_SHORT).show();
Log.d(TAG, "Event OnMyLocationChangeListener.");
}
});
如果我理解正确,这个整个事件应该只在地图上显示的“我的位置蓝点”的位置发生变化时才会触发...但每次我在我的设备上运行代码时我都会继续吐痰我的代码就像事件被不间断地触发一样。
有什么我想念的东西,或者我不理解的东西?我以为我应该只看到我的祝酒词,并且只有在蓝点的位置改变之后。
答案 0 :(得分:1)
文档说明了
Called when the Location of the My Location dot has changed (be it latitude/longitude, bearing or accuracy).
也许你的方位或精确度一直在变化 - 用坐标将它们打印到LogCat中,看看与以前的日志语句有什么不同。