特定の場所を地図に表示したい1つのアプリケーションを設計しています。 Google Map
に既に配置されているString
のアドレスを渡します。以下は私のIntent
コードです。
String url = "http://maps.google.com/maps?daddr="+address;
Intent intent = new Intent(Android.content.Intent.ACTION_VIEW, Uri.parse(url));
startActivity(intent);
しかし、方向性を知るためのGoogleマップを提供してくれます。 daddr
でurl
を使用したので、その理由はわかっていますが、特定の場所に何を使用すればよいかわかりません。そこで何を使用するか教えてください。
私はこれをテストしていませんが、あなたは試すことができます:
最初の方法:
String uri = String.format(Locale.ENGLISH, "geo:%f,%f", latitude, longitude);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
context.startActivity(intent);
編集:これは、Googleマップ7,0では機能しない可能性があります
したがって、uriを次のように変更できます。
2番目のオプション:
String geoUri = "http://maps.google.com/maps?q=loc:" + lat + "," + lng + " (" + mTitle + ")";
ここで、mTitle
は場所の名前です。
番目のオプション:
geo:0,0?q=my+street+address
4番目のオプション:
String map = "http://maps.google.co.in/maps?q=" + yourAddress;
それが機能し、役立つことを願っています:D ..
http://maps.google.com/maps/api/geocode/json?address=" + address + "&sensor=false
String strUri = "http://maps.google.com/maps?q=loc:" + lat + "," + lng + " (" + "Label which you want" + ")";
Intent intent = new Intent(Android.content.Intent.ACTION_VIEW, Uri.parse(strUri));
intent.setClassName("com.google.Android.apps.maps", "com.google.Android.maps.MapsActivity");
startActivity(intent);
ありがとうございました。
マップの最新バージョンは、より優れたソリューションを提供します。地図に住所を表示したい場合は、以下のコードを使用してください。
Uri mapUri = Uri.parse("geo:0,0?q=" + Uri.encode(address));
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapUri);
mapIntent.setPackage("com.google.Android.apps.maps");
startActivity(mapIntent);
緯度と経度の値を使用して表示する場合は、以下の方法を使用します。
Uri mapUri = Uri.parse("geo:0,0?q=lat,lng(label)");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, mapUri);
mapIntent.setPackage("com.google.Android.apps.maps");
startActivity(mapIntent);
Latとlngは表示する緯度と経度です。ここのラベルはオプションです。
このようなものを使用する必要があります
Intent intent = new Intent(Android.content.Intent.ACTION_VIEW,
Uri.parse("http://maps.google.com/maps?saddr=20.344,34.34&daddr=20.5666,45.345"));
startActivity(intent);
ピンを落とす
try {
Intent intent = new Intent(Android.content.Intent.ACTION_VIEW,
Uri.parse("geo:" + AppointmentDetailLayout.docLatitude
+ "," + AppointmentDetailLayout.docLongitude
+ "?q=" + AppointmentDetailLayout.docLatitude
+ "," + AppointmentDetailLayout.docLongitude
+ "(" + label + ")"));
intent.setComponent(new ComponentName(
"com.google.Android.apps.maps",
"com.google.Android.maps.MapsActivity"));
context.startActivity(intent);
} catch (ActivityNotFoundException e) {
try {
context.startActivity(new Intent(
Intent.ACTION_VIEW,
Uri.parse("market://details?id=com.google.Android.apps.maps")));
} catch (Android.content.ActivityNotFoundException anfe) {
context.startActivity(new Intent(
Intent.ACTION_VIEW,
Uri.parse("http://play.google.com/store/apps/details?id=com.google.Android.apps.maps")));
}
e.printStackTrace();
}
これは魅力のように機能します。 Googleマップの存在を必ず確認してください。これにより、Google以外のすべてのデバイスでも同様に機能します。このような場合、ブラウザで開きます。
また、URLにwwwを含めないでください。それ以外の場合は機能しません。
Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse("http://maps.google.com/maps?q=loc:" + latitude + "," + longitude);
i.addFlags(Intent.FLAG_ACTIVITY_NEW_TASK); // Only if initiating from a Broadcast Receiver
String mapsPackageName = "com.google.Android.apps.maps";
if (Utility.isPackageExisted(context, mapsPackageName)) {
i.setClassName(mapsPackageName, "com.google.Android.maps.MapsActivity");
i.setPackage(mapsPackageName);
}
context.startActivity(i);
try {
Intent intent = new Intent(Android.content.Intent.ACTION_VIEW,
Uri.parse("http://maps.google.com/maps?saddr=" + src_lat+ "," + src_lng + "&daddr=" + des_lat + "," + des_lng));
startActivity(intent);
}catch (ActivityNotFoundException ane){
Toast.makeText(activity, "Please Install Google Maps ", Toast.LENGTH_LONG).show();
}catch (Exception ex){
ex.getMessage();
}
}
});
Uri gmmIntentUri = Uri.parse("geo:37.7749,-122.4194");
Intent mapIntent = new Intent(Intent.ACTION_VIEW, gmmIntentUri);
mapIntent.setPackage("com.google.Android.apps.maps");
if (mapIntent.resolveActivity(getPackageManager()) != null) {
startActivity(mapIntent);
}
UriBuilderを使用してコードをクリーンにし、マップを開くことができるデバイスにアクティビティがない場合に条件を処理するためのこのヘルパーメソッド
public static boolean openMap(Context context, String address) {
Uri.Builder uriBuilder = new Uri.Builder()
.scheme("geo")
.path("0,0")
.appendQueryParameter("q", address);
Intent intent = new Intent(Intent.ACTION_VIEW, uriBuilder.build());
if (intent.resolveActivity(context.getPackageManager()) != null) {
context.startActivity(intent);
return true;
}
return false;
}
https://www.google.com/maps/dir//37.4219983,-122.084
文字列の場所= " https://www.google.com/maps/dir// " +緯度+ "、" +経度; try {SmsManager sms = SmsManager.getDefault(); // Android SmsManagerを使用sms.sendTextMessage(number、null、message + location、null、null); //数値とテキストを追加するToast.makeText(getApplicationContext()、 "Message Sent"、Toast.LENGTH_SHORT).show(); } catch(例外e){Toast.makeText(this、 "SMSは送信されません。電話番号/ネットワークを確認してください"、Toast.LENGTH_SHORT).show(); e.printStackTrace(); }