moveCamera() 在 Android 上使用了错误的位置数据
moveCamera() uses wrong location data on Android
希望你能帮助我。我当前的应用程序能够获取我当前的位置(通过 GPS)。现在我在我的当前位置添加了一个标记,效果很好,但是如果我想将我的相机移动到标记上,它就不起作用了。 moveCamera(positon);
的输入与 addMarker(position);
的输入相同
这是我的代码:
//center is used when no location is available (Berlin)
final CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(52.5075389,13.5231758));
final CameraUpdate zoom = CameraUpdateFactory.zoomTo(14);
//get location from other activity
final Bundle extras = getIntent().getExtras();
MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.mapfragment);
mapFragment.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
LatLng position = new LatLng(52.5075389,13.5231758);
if (extras != null) { //if location available
position = (LatLng)extras.getParcelable("location");
final CameraUpdate centerLocation = CameraUpdateFactory.newLatLng(position);
MarkerOptions markerOptions = new MarkerOptions().position(position).title(MARKER_TITLE).snippet(MARKER_SNIPPET);
googleMap.addMarker(markerOptions);
googleMap.getUiSettings().setMapToolbarEnabled(false); //hide auto created buttons
googleMap.moveCamera(centerLocation);
googleMap.animateCamera(zoom);
}
else{
//some other code here
}
我的标记在正确的位置,但我的 centerLocation 不在。有什么建议吗?
感谢评论。这是我的解决方案:
final float zoom = 14;
//rest of the code is unchaged
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(position, zoom));
希望你能帮助我。我当前的应用程序能够获取我当前的位置(通过 GPS)。现在我在我的当前位置添加了一个标记,效果很好,但是如果我想将我的相机移动到标记上,它就不起作用了。 moveCamera(positon);
的输入与 addMarker(position);
这是我的代码:
//center is used when no location is available (Berlin)
final CameraUpdate center = CameraUpdateFactory.newLatLng(new LatLng(52.5075389,13.5231758));
final CameraUpdate zoom = CameraUpdateFactory.zoomTo(14);
//get location from other activity
final Bundle extras = getIntent().getExtras();
MapFragment mapFragment = (MapFragment) getFragmentManager().findFragmentById(R.id.mapfragment);
mapFragment.getMapAsync(new OnMapReadyCallback() {
@Override
public void onMapReady(GoogleMap googleMap) {
LatLng position = new LatLng(52.5075389,13.5231758);
if (extras != null) { //if location available
position = (LatLng)extras.getParcelable("location");
final CameraUpdate centerLocation = CameraUpdateFactory.newLatLng(position);
MarkerOptions markerOptions = new MarkerOptions().position(position).title(MARKER_TITLE).snippet(MARKER_SNIPPET);
googleMap.addMarker(markerOptions);
googleMap.getUiSettings().setMapToolbarEnabled(false); //hide auto created buttons
googleMap.moveCamera(centerLocation);
googleMap.animateCamera(zoom);
}
else{
//some other code here
}
我的标记在正确的位置,但我的 centerLocation 不在。有什么建议吗?
感谢评论。这是我的解决方案:
final float zoom = 14;
//rest of the code is unchaged
googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(position, zoom));