首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >安卓地图V2应用编程接口中心屏幕当前位置

问安卓地图V2应用编程接口中心屏幕当前位置
EN

Stack Overflow用户
提问于 2014-06-27 22:33:26
回答 2查看 2.5K关注 0票数 4

我正在尝试完成这个简单的任务,这似乎非常简单,但它仍然没有像它应该做的那样工作。我正在使用下面的方法,但手机在市中心放大,距离我的蓝色定位点大约2公里。

代码语言:javascript
复制
public void setUpMap() {
        mGoogleMap.setMyLocationEnabled(true);

        String context = Context.LOCATION_SERVICE;

        LocationManager locationManager = (LocationManager)mContext.getSystemService(context);

        Criteria criteria = new Criteria();
        String provider = locationManager.getBestProvider(criteria, true);
        Location myLocation = locationManager.getLastKnownLocation(provider);

        double latitude = myLocation.getLatitude();
        double longitude = myLocation.getLongitude();

        LatLng latLng = new LatLng(latitude, longitude);

        mGoogleMap.moveCamera(CameraUpdateFactory.newLatLngZoom(latLng, 10));


    }

我试着设置不同的缩放值,但没有太大的变化。我不确定是否应该设置newLatLngBounds,因为每个人都说这是正确的方式。似乎我没有得到我的当前位置,而是我所在城市的位置。

EN

回答 2

Stack Overflow用户

发布于 2014-06-27 22:35:46

新答案:-

代码语言:javascript
复制
mMap.setMyLocationEnabled(true);

                Location myLocation = mMap.getMyLocation();

                if (myLocation != null) {
                    mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(
                            new LatLng(myLocation.getLatitude(), myLocation
                                    .getLongitude()), 14));
                }
票数 2
EN

Stack Overflow用户

发布于 2015-02-20 18:35:20

这来得有点太晚了,但有两种方法可以做到。

FusedLocation接口

实现FusedLocation接口(参见Making Your App Location Aware),使用它来setup a location request并获取位置定位。在回调中获取Location对象时,使用它在GoogleMap对象中设置位置。

代码语言:javascript
复制
@Override
public void onLocationChanged(Location location) {
    mCurrentLocation = location;
     mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(
                    new LatLng(location.getLatitude(), location.getLongitude()), 15));
}

OnMyLocationChangeListener

GoogleMap类有一个OnMyLocationChangeListener,您可以像这样实现单个修复:

代码语言:javascript
复制
mMap.setOnMyLocationChangeListener(new GoogleMap.OnMyLocationChangeListener() {
        @Override
        public void onMyLocationChange(Location location) {
            mMap.animateCamera(CameraUpdateFactory.newLatLngZoom(
                    new LatLng(location.getLatitude(), location.getLongitude()), 15));
            mMap.setOnMyLocationChangeListener(null);
        }
    });

问题是,界面是marked as deprecated的,而谷歌推荐使用FusedLocation API。如果你真的想使用它,你可以使用它,但要知道未来的任何API更改都会使它不可用,并破坏你的应用程序。

票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/24454409

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档