moveCamera()在Android上使用了错误的位置数据

问题描述 投票:0回答:1

希望您能帮助我。我当前的应用程序能够获取我的当前位置(通过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不正确。有什么建议吗?

希望您能帮助我。我当前的应用程序能够获取我的当前位置(通过GPS)。现在,我向当前位置添加了一个可以完美工作的标记,但是如果我想将相机移动到该标记上,......>

java android google-maps google-maps-markers google-maps-android-api-2
1个回答
0
投票

感谢评论。这是我的解决方案:

final float zoom = 14;

//rest of the code is unchaged

googleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(position, zoom));
© www.soinside.com 2019 - 2024. All rights reserved.