我正在尝试将相机移到当前位置,我尝试过的事情是:

我的onCreateView看起来像:

 public View onCreateView(LayoutInflater inflater, ViewGroup container, Bundle savedInstanceState) {
        View inflatedView = inflater.inflate(R.layout.fragment_photos, container, false);

        try {
            MapsInitializer.initialize(getActivity());
        } catch (Exception e) {
            // TODO handle this situation
        }

        mMapView = (MapView) inflatedView.findViewById(R.id.mapView);
        mMapView.onCreate(mBundle);


        setUpMapIfNeeded(inflatedView);

        return inflatedView;
    }

我的onCreate看起来像:

@Override
public void onCreate(Bundle savedInstanceState) {
    super.onCreate(savedInstanceState);
    mBundle = savedInstanceState;
}

而且我有一个名为setUpMapIfNeeded的方法可以扩大视图的大小...我尝试过的事情是使用mMap.getMyLocation()创建一个Location,然后创建两个double latlng ,它们分别是= location.getLatitude and Longitude ,我尝试使用我的位置创建一个cameraZoomIn,但是它不起作用。

private void setUpMapIfNeeded(View inflatedView) {
    if (mMap == null) {
        mMap = ((MapView) inflatedView.findViewById(R.id.mapView)).getMap();
        mMap.getUiSettings().setMyLocationButtonEnabled(true);
        mMap.setMyLocationEnabled(true);

        Location location = mMap.getMyLocation();
        double lat =  location.getLatitude();
        double lng = location.getLongitude();
        CameraUpdate cameraUpdate = CameraUpdateFactory.zoomTo(location, 10);
        mMap.animateCamera(cameraUpdate);

        if (mMap != null) {
            setUpMap();
        }
    }
}

setUpMap方法

    private void setUpMap() {
        mMap.addMarker(new MarkerOptions().position(new LatLng(0, 0)).title("PewPew"));
        // latitude and longitude
        double latitude = 17.385044;
        double longitude = 78.486671;

// create marker
        MarkerOptions marker = new MarkerOptions().position(new LatLng(latitude, longitude)).title("Pew Pew");

// Changing marker icon
        marker.icon(BitmapDescriptorFactory.fromResource(R.drawable.ic_launcher));

// adding marker
        mMap.addMarker(marker);

    }

希望您能帮助您解决此问题。

谢谢。

#1楼 票数:2 已采纳

不推荐使用GoogleMap.getLocation,您应该使用位置服务:

LocationManager mng = (LocationManager) getSystemService(Context.LOCATION_SERVICE);
Location location = mng.getLastKnownLocation(mng.getBestProvider(new Criteria(), false));

double lat = location.getLatitude();
double lon = location.getLongitude();

CameraUpdate cameraUpdate = CameraUpdateFactory.newLatLngZoom(new LatLng(lat, lon), 10);
mMap.animateCamera(cameraUpdate);

#2楼 票数:0

这就是我缩放的方式

LatLng a = new LatLng(gps.getLatitude(), gps.getLongitude());
map.animateCamera(CameraUpdateFactory.newLatLngZoom(a, 10));

希望对您有所帮助。

  ask by Skizo-ozᴉʞS translate from so

未解决问题?本站智能推荐:

1回复

点击按钮时谷歌地图崩溃。(无效com.google.maps.api.android.lib6.impl.bp.v())

谷歌地图活动以前可以正常工作,但是当我尝试实施相机活动时它坏了,此后我恢复了更改,但它仍然坏了。 此应用程序崩溃并显示以下错误:java.lang.NullPointerException: Attempt to invoke interface method 'void com.google.ma
5回复

在Google地图中显示我当前的位置

最后我成功显示了地图,现在,我想显示我当前的位置,我尝试使用这些代码但是当我单击右上角的我的位置按钮时它不起作用。 AndroidManifest.xml 地图活动.java
2回复

Google地图:当前位置标记(GMap的期间更新)

所以我已经能够通过开发者 android 页面定期更新我的当前位置,让您的应用程序位置感知。 现在,每当我的位置发生变化时,我都能获得该位置的纬度和经度。 但是,我该由谁使用 Google 地图来实现这一点? 下面这一行在我的地图上实现了一个按钮,用于查找我当前的位置并在其上放置一个蓝点/标记(不接
1回复

无法通过Gradle导入com.google.maps.android:android-maps-utils

我试图将com.google.maps.android:android-maps-utils导入到Android Studio 0.5.4中的项目中。 我收到此Gradle 信息和错误 : 我的build.gradle: 项目Manifest.xml 我试图在maps-utils
2回复

导入com.google.android.maps.MapActivity时出错

我正在创建一个简单的应用程序来测试place picker Google API。 我正在关注本教程。 我被困在导入以下库。 在上面的导入中, maps被突出显示,当我在其上移动光标时,它说Cannot resolve symbol maps 。 我在这里看到了类似的问题,但是答案是
1回复

地图不再显示当前位置

我开始使用Google Maps开发一个应用程序,并且效果很好。 该地图显示了当前设备的位置。 然后,我尝试更改地图类型,此方法就起作用了……有点。。该设备的位置不再显示。 因此,我删除了更改地图类型的行。 但是当前位置仍然不可见。 有人知道为什么吗?
2回复

当前位置androidgooglemaps的问题

我在维也纳取当前位置有困难,有人可以指导我,维也纳的值是静态的只能定义,我想让你取当前位置。 谁能帮帮我,谢谢。 欢迎任何帮助实用程序代码 代码映射
1回复

错误:包com.google.maps.android.kml不存在

嗨,我在用android studio,我看到了一个新错误 我已经在我的Gradle中使用了它的包: 而且我尝试了人们所说的丢失包裹的所有方法 我试过“文件->使缓存无效/ ....” 尝试更新SDK 尝试清洁和重建 尝试删除所有“ iml”文件并删除.idea文