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

このコードを使用してください。

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();
}
于 2013-02-22T11:50:27.373 に答える
1

マニフェストにすべての権限が設定されていますか?また、位置情報サービスを有効にする必要があります(ステータスバーのGPSアイコンが表示されていますか?)。デバイスが場所を取得するまでに時間がかかるため、onLocationChangedが呼び出されるかどうかを確認してください。

于 2013-02-22T11:14:54.493 に答える
1

基本的には、Google Directions APIを呼び出して、道路の方向座標(多くの緯度ポイント)を受け取り、それぞれの間にポリラインを描画する必要があります。

Uは、overview_polylineまたはlegsandstepsのいずれかを使用できます。

于 2013-03-13T08:37:41.543 に答える