繁体   English   中英

Google Maps Android API v2和当前位置

[英]Google Maps Android API v2 and current location

我正在使用JellyBean 4.2并在设备上进行测试。

单击myLocationButton时如何获取当前位置。

使用网络提供程序时,getMYLocation返回null。

我正在使用LocationManager获取当前位置,并参考Google文档https://developers.google.com/maps/documentation/android/start

在此之后,单击MyLocatiionButton不会带来任何更改

您需要将LocationSource添加到地图片段。 请参阅此答案作为一个单独的示例。

清单中是否设置了所有权限? 另外,您必须启用定位服务(状态栏中的gps图标是否显示?)。 设备需要一些时间来获取位置,因此请查看是否调用了onLocationChanged。

使用此代码ID可以正常工作。

private LocationManager locationManager;
private Location location;
private boolean hasGpsProvider, hasNetwrokProvider;

    public Location getLocation(Context mContext) {

        if (locationManager == null) {
            locationManager = (LocationManager) mContext
                    .getSystemService(Context.LOCATION_SERVICE);
        }

        hasGpsProvider = locationManager
                .isProviderEnabled(LocationManager.GPS_PROVIDER);
        hasNetwrokProvider = locationManager
                .isProviderEnabled(LocationManager.NETWORK_PROVIDER);
        if (hasGpsProvider) {
            locationManager.requestLocationUpdates(
                    LocationManager.GPS_PROVIDER, 0, 100, locationListenerGps);
            location = locationManager
                    .getLastKnownLocation(LocationManager.GPS_PROVIDER);
            return location;
        }

        if (hasNetwrokProvider) {
            locationManager.requestLocationUpdates(
                    LocationManager.NETWORK_PROVIDER, 0, 100,
                    locationListenerNetwork);
            location = locationManager
                    .getLastKnownLocation(LocationManager.NETWORK_PROVIDER);
            return location;
        }

        return location;
    }

并致电

if (location != null) {
    lat = location.getLatitude();
    lng = location.getLongitude();
}

基本上,您应该做的是调用Google Directions API以获取道路坐标(许多Latlng点),然后在它们之间绘制一条折线。

U可以使用overview_polyline或腿和台阶。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM