为什么我不能用GetCameraPosition((回到我用MoveCamera((设置的位置?
我这样测试:
设置相机:
...
LatLng curPos = new LatLng(48.1698934, 11.5515271);
mMap.moveCamera(CameraUpdateFactory.newLatLng(curPos));
Log.i("Position", setPos.toString());
...
然后在OnCamera Listener中,我读取了位置:
@Override
public void onCameraIdle() {
//The camera has stopped moving.
CameraPosition xPos = mMap.getCameraPosition();
Log.i("Position", xPos.toString());
}
在Logcat中,我得到了这个:
xxxxxx I/Position: lat/lng: (**48.1698934,11.5515271**)
xxxxxx I/Position: CameraPosition{target=lat/lng: (**
48.16989330826159,11.551527231931688**), zoom=3.0, tilt=0.0, bearing=0.0}
这清楚地表明了得到的位置与我设定的不同。为什么会有这种差异?它将如何修复?
它看起来是一样的,只是四舍五入。由于您的curPos变量坐标只有7位小数,因此从技术上讲,您并没有在地图上设置确切的位置。确切的位置将是一个替身所能占据的最大位置,大约是15。当相机得到位置时,它会从替身中给出最准确的数字。这就是为什么数字不完全相同的原因
您可以尝试在lat和lng变量中添加尾随0,这可能会奏效。