ボタンをクリックしたり、場所を変更したり、特定の時間後に経度と緯度の値を取得できるアプリケーションがあります。この値を使用して、Google マップ アプリケーションに表示したいと考えています。場所を表示する意図を使用してマップを開いていますが、どういうわけか取得している座標が表示されません。
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
どういうわけか、Googleでこの文字列を使用して
String url = "http://maps.google.com/maps?daddr="+ ze.getCoordenada().getLatitude() + ","+ ze.getCoordenada().getLongitude();
Googleマップを選択すると、ウェブサイトが正しいときに反対の経度と緯度が表示されます。
古いバージョンの Google マップを使用している可能性があります
これを試して:
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);
ブラウザまたはマップを使用するプロンプトが表示されます
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 チュートリアル