谷歌地图API移动摄像头与获取摄像头位置



为什么我不能用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,这可能会奏效。

最新更新