1

ボタンをクリックしたり、場所を変更したり、特定の時間後に経度と緯度の値を取得できるアプリケーションがあります。この値を使用して、Google マップ アプリケーションに表示したいと考えています。場所を表示する意図を使用してマップを開いていますが、どういうわけか取得している座標が表示されません。

4

5 に答える 5

5

これは、私のアプリの1つで使用している実用的なコードです。このコードには、ユーザーが自分のデバイスにGoogleマップをインストールしているかどうかを確認するためのチェックも含まれています。チェックでアプリがインストール済みとして返される場合、関数はデータをアプリに渡します。チェックに失敗すると、アプリがインストールされていないことを使用者に通知するAlertDialogが表示されます。

protected void showMap() {

    boolean installedMaps = false;

    // CHECK IF GOOGLE MAPS IS INSTALLED
    PackageManager pkManager = getPackageManager();
    try {
        @SuppressWarnings("unused")
        PackageInfo pkInfo = pkManager.getPackageInfo("com.google.android.apps.maps", 0);
        installedMaps = true;
    } catch (Exception e) {
        e.printStackTrace();
        installedMaps = false;
    }

    // SHOW THE MAP USING CO-ORDINATES FROM THE CHECKIN
    if (installedMaps == true) {
        String geoCode = "geo:0,0?q=" + PLACE_LATITUDE + ","
                + PLACE_LONGITUDE + "(" + PLACE_NAME + ")";
        Intent sendLocationToMap = new Intent(Intent.ACTION_VIEW,
                Uri.parse(geoCode));
        startActivity(sendLocationToMap);
    } else if (installedMaps == false) {

        AlertDialog.Builder alertDialogBuilder = new AlertDialog.Builder(
                CheckinsDetails.this);

        // SET THE ICON
        alertDialogBuilder.setIcon(R.drawable.ic_launcher);

        // SET THE TITLE
        alertDialogBuilder.setTitle("Google Maps Not Found");

        // SET THE MESSAGE
        alertDialogBuilder
                .setMessage(R.string.noMapsInstalled)
                .setCancelable(false)
                .setNeutralButton("Got It",
                        new DialogInterface.OnClickListener() {
                            public void onClick(DialogInterface dialog,
                                    int id) {
                                dialog.dismiss();
                            }
                        });

        // CREATE THE ALERT DIALOG
        AlertDialog alertDialog = alertDialogBuilder.create();

        // SHOW THE ALERT DIALOG
        alertDialog.show();
    }
}

以下に説明するこのコード行は、それをGoogleマップに送信し、PINだけを表示する代わりに、場所の名前も表示します。

String geoCode = "geo:0,0?q=" + PLACE_LATITUDE + ","
                    + PLACE_LONGITUDE + "(" + PLACE_NAME + ")";

編集:PLACE_NAMEを表示したくない場合geo:latitude,longitudeは、コードブロックで使用されている行の代わりに、その特定の行を:で変更します。

ズームなど、可能なその他の組み合わせについては、次のリンクを確認してください:http : //developer.android.com/guide/appendix/g-app-intents.html

于 2012-09-26T10:14:35.573 に答える
0

どういうわけか、Googleでこの文字列を使用して

String url = "http://maps.google.com/maps?daddr="+ ze.getCoordenada().getLatitude() + ","+     ze.getCoordenada().getLongitude();

Googleマップを選択すると、ウェブサイトが正しいときに反対の経度と緯度が表示されます。

古いバージョンの Google マップを使用している可能性があります

于 2013-09-07T09:34:43.523 に答える
0

これを試して:

String url = "http://maps.google.com/maps?daddr="+ ze.getCoordenada().getLatitude() + ","+     ze.getCoordenada().getLongitude();
Intent goZe = new Intent(Intent.ACTION_VIEW);
goZe.setData(Uri.parse(url));
startActivity(goZe);

ブラウザまたはマップを使用するプロンプトが表示されます

于 2013-03-19T16:35:28.630 に答える
0
Double latitud = 37.40*1E6;
            Double longitud = -5.99*1E6;

            GeoPoint loc =
                new GeoPoint(latitud.intValue(), longitud.intValue());

            controlMapa.animateTo(loc);

            int zoomActual = mapa.getZoomLevel();

            for(int i=zoomActual; i<10; i++)
                controlMapa.zoomIn();
        }

どこ

 controlMapa = mapa.getController();

      mapa = (MapView)findViewById(R.id.linearLayout1);

詳細情報: MapView チュートリアル

于 2012-09-26T10:10:52.887 に答える