Как открыть Google Карты, используя адрес? - PullRequest
11 голосов
/ 03 апреля 2012

Как мне открыть Google Карты (используя Intents или добавить Google Maps в мое приложение) с адресом? У меня есть адрес, но у меня нет широты / долготы. Как мне это сделать? Спасибо.

Ответы [ 7 ]

37 голосов
/ 03 апреля 2012

используйте приведенный ниже код,

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

// где str_location - строка адреса

Intent i = new Intent(Intent.ACTION_VIEW, Uri.parse(map));
        startActivity(i);
14 голосов
/ 03 апреля 2012

Из моей личной библиотеки кодов. ;)

public static Intent viewOnMap(String address) {
    return new Intent(Intent.ACTION_VIEW,
                      Uri.parse(String.format("geo:0,0?q=%s",
                                              URLEncoder.encode(address))));
}

public static Intent viewOnMap(String lat, String lng) {
    return new Intent(Intent.ACTION_VIEW,
                      Uri.parse(String.format("geo:%s,%s", lat, lng)));
}
1 голос
/ 03 апреля 2012

Замените полужирный часть этого URL на адрес вашей компании.Лучше, если вы заменяете все пробелы символом плюса (+), но должны работать и с пробелами: http://maps.google.com/maps/geo?q=620+8th+Avenue,+New+York,+NY+10018,+USA&output=csv&oe=utf8&sensor=false

Поднимите запрос на вышеуказанный URL.За дополнительной информацией обращайтесь http://androidadvice.blogspot.in/2010/09/asynchronous-web-request.html

. Будет сгенерирован код, который выглядит примерно так:

200,8,40.7562008,-73.9903784

Первое число, 200, говорит, что адрес хороший.Второе число, 8, указывает, насколько точен адрес.Последние два числа, 40.7562008 и -73.9903784, являются широтой и долготой этого адреса.Используйте их, чтобы ваша карта Google работала.

Примечание. Указанные выше шаги скопированы с http://webdesign.about.com/od/javascript/ss/add-google-maps-to-a-web-page_2.htm

0 голосов
/ 18 июля 2019
String geoUri = "http://maps.google.com/maps?q=loc:" + addressName;
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(geoUri));
            context.startActivity(intent);
0 голосов
/ 23 июня 2018

Немного опоздал на вечеринку.Я предпочитаю ответ @ st0le, но URLEncoder.encode(String s) устарело с API 16. Вам также необходимо передать второй аргумент.Проверьте ответ ниже.

 public static Intent viewOnMapA(String address) {
    try {
        return new Intent(Intent.ACTION_VIEW,
                Uri.parse(String.format("geo:0,0?q=%s",
                        URLEncoder.encode(address, "UTF-8"))));
    } catch (UnsupportedEncodingException e) {
        e.printStackTrace();
    }
    return null;
}
0 голосов
/ 02 августа 2017

По состоянию на 2017 год рекомендуемый Google подход использует API-интерфейс Google Maps , который предоставляет универсальные межплатформенные URL-адреса.Вы можете использовать эти URL в своих намерениях.

Пример такого URL из документации:

https://www.google.com/maps/search/?api=1&query=centurylink+field

Надеюсь, это поможет!

0 голосов
/ 03 апреля 2012

Вы можете использовать Google Geocoding API, который преобразует ваш физический адрес в широту и долготу. API возвращает его в формате XML или JSON. Вам просто нужно проанализировать данные, чтобы получить широту и долготу. После получения широты и долготы вы можете загрузить их на карту.

Геокодирование API-ссылка:

https://developers.google.com/maps/documentation/geocoding/

Надеюсь, это поможет.

...