Google Maps Android API v2和当前位置

时间:2013-02-22 11:12:14

标签: android maps google-maps-android-api-2

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

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

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

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

点击MyLocatiionButton后没有带来任何改变

4 个答案:

答案 0 :(得分:2)

您需要将LocationSource添加到地图片段中。有关离散示例,请参阅this answer

答案 1 :(得分:1)

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

答案 2 :(得分:1)

使用此代码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();
}

答案 3 :(得分:1)

基本上你应该做的是拨打Google Directions API来接收道路方向坐标(许多Latlng点),然后在每一个之间绘制一条折线。

你可以使用overview_polyline或腿和步骤。