Как открыть Карты 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 &ы; датчик = ложь
Подтвердите запрос на указанный выше 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);