Как открыть Google Карты с помощью адреса?

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

Ответ 1

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

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

Ответ 2

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

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

Ответ 3

Измените жирный часть этого URL-адреса на адрес вашей компании. Лучше всего, если вы замените все пробелы символом плюса (+), но также должны работать с пробелами: http://maps.google.com/maps/geo?q= 620 + 8th + Avenue, + New + York, + NY + 10018, + USA и выход = & CSV усилитель; ая = UTF8 &ampы; датчик = ложь

Подтвердите запрос на указанный выше 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

Ответ 4

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

Ссылка на геокодирование api:

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

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

Ответ 5

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

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

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

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

Ответ 6

Немного опоздал на вечеринку. Я предпочитаю ответ @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;
}

Ответ 7

String geoUri = "http://maps.google.com/maps?q=loc:" + addressName;
            Intent intent = new Intent(Intent.ACTION_VIEW, Uri.parse(geoUri));
            context.startActivity(intent);