1

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

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

getMYLocation 在使用网络提供商时返回 null。

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

在单击 MyLocatiionButton 之后不会带来任何变化

4

4 回答 4

2

您需要将 LocationSource 添加到地图片段。请参阅此答案以获取离散示例。

于 2013-02-22T19:50:33.163 回答
1

Use this code Id it does work.

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;
    }

And call

if (location != null) {
    lat = location.getLatitude();
    lng = location.getLongitude();
}
于 2013-02-22T11:50:27.373 回答
1

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

于 2013-02-22T11:14:54.493 回答
1

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

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

于 2013-03-13T08:37:41.543 回答