Подтвердить что ты не робот

Открывать карты Google через намерение для конкретного местоположения в android

Я разрабатываю одно приложение, в котором я хочу показать конкретное местоположение на Карте. Я передаю String адреса, который уже размещен на Google Map. Ниже приведен мой код 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 Map для получения направления. Я знаю, почему это так, потому что я использовал daddr в url, но я не знаю, что использовать для определенного местоположения. Пожалуйста, скажите мне, что использовать там.

4b9b3361

Ответ 1

Я не тестировал это, но вы могли попробовать:

Первый метод:

String uri = String.format(Locale.ENGLISH, "geo:%f,%f", latitude, longitude);
Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(uri));
context.startActivity(intent);

EDIT: Это может не работать с картами Google 7,0

следовательно, вы можете изменить uri на:

Второй вариант:

String geoUri = "http://maps.google.com/maps?q=loc:" + lat + "," + lng + " (" + mTitle + ")";

где mTitle - имя местоположения.

Третий вариант:

geo:0,0?q=my+street+address

Четвертый вариант:

String map = "http://maps.google.co.in/maps?q=" + yourAddress;

Надеюсь, что это работает и помогает: D..

Ответ 2

Get Lat-Lng Использование этого веб-сервиса

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

Я надеюсь, что это поможет вам

Спасибо.

Ответ 3

Последняя версия карты обеспечивает лучшее решение. Если вы хотите показать адрес на карте, используйте ниже код.

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 - широта и долгота, которые вы хотите отобразить, метка здесь необязательна.

Ответ 4

Вы должны использовать что-то вроде этого

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

Ответ 5

Это будет работать как шарм. Обязательно проверяйте наличие на Картах Google, чтобы он мог работать повсеместно и на всех устройствах, отличных от Google. Он откроется в браузере в таких случаях.

Также помните, что у вас нет www в URL. Иначе это не сработает.

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

Ответ 6

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

Обратитесь к этой документации

Ответ 7

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

Ответ 8

Этот вспомогательный метод с использованием 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;
}

Ответ 9

https://www.google.com/maps/dir//37.4219983,-122.084

String location = "https://www.google.com/maps/dir//" + широта + "," + долгота;                   пытаться {                       SmsManager sms = SmsManager.getDefault();//используя Android SmsManager                       sms.sendTextMessage (число, ноль, сообщение + местоположение, ноль, ноль);//добавляем номер и текст                       Toast.makeText(getApplicationContext(), "Сообщение отправлено", Toast.LENGTH_SHORT).show();                   } catch (исключение e) {                       Toast.makeText (это, "SMS не отправлено, проверьте номер телефона/сеть", Toast.LENGTH_SHORT).show();                       e.printStackTrace();                   }