Как конвертировать адрес в ссылку Google Maps (НЕ КАРТА)

Посмотрев (Googling) в Интернете какое-то время, я не могу найти ничего, что получит такой адрес, как:

1200 Pennsylvania Ave SE, Вашингтон, округ Колумбия, 20003

и преобразует его в интерактивную ссылку:

http://maps.google.com/maps?f=q&source=s_q&hl=en&q=1200+Pennsylvania+Ave+SE,+Washington,+District+of+Columbia,+20003&sll=37.0625,-95. 677068 & sspn = 44.118686,114.169922 & т.е. = UTF - 8 & кд = 1 & геокод = FT5MUQIdIDlp-W & сплит = 0 & LL = 38,882147, -76 0,99017 & шп = 0.01064,0.027874 & г = 16 & iwloc = А

JQuery или PHP предпочтены или просто любая полезная информация об этом.

Ответ 1

Как насчет этого?

https://maps.google.com/?q=1200 Пенсильвания Авеню С.Е., Вашингтон, округ Колумбия, 20003

https://maps.google.com/?q=term

Если у вас лат-лонг, используйте ниже URL

https://maps.google.com/?ll=latitude,longitude

Пример: maps.google.com/?ll=38.882147,-76.99017

ОБНОВИТЬ

По состоянию на 2017 год у Google появился официальный способ создания кроссплатформенных URL-адресов Карт Google:

https://developers.google.com/maps/documentation/urls/guide

Вы можете использовать ссылки, такие как

https://www.google.com/maps/search/?api=1&query=1200%20Pennsylvania%20Ave%20SE%2C%20Washington%2C%20District%20of%20Columbia%2C%2020003 

Ответ 2

Я знаю, что я очень опаздываю на игру, но думал, что буду способствовать ради потомства.

Я написал короткую функцию jQuery, которая автоматически превратит теги <address> в ссылки на карты Google.

Смотрите демо здесь

$(document).ready(function () {
   //Convert address tags to google map links - Michael Jasper 2012
   $('address').each(function () {
      var link = "<a href='http://maps.google.com/maps?q=" + encodeURIComponent( $(this).text() ) + "' target='_blank'>" + $(this).text() + "</a>";
      $(this).html(link);
   });
});

Бонус:

Я также столкнулся с ситуацией, которая вызвала создание встроенных карт из ссылок, и хотя я бы поделился с будущими путешественниками:

Просмотр полной демонстрации

$(document).ready(function(){
    $("address").each(function(){                         
        var embed ="<iframe width='425' height='350' frameborder='0' scrolling='no'  marginheight='0' marginwidth='0' src='https://maps.google.com/maps?&amp;q="+ encodeURIComponent( $(this).text() ) +"&amp;output=embed'></iframe>";
        $(this).html(embed);             
    });
});

Ответ 3

Фев, 2016:

Мне нужно было сделать это на основе введенных пользователем значений базы данных и без генератора lat/long. Google действительно любит лат/долго в эти дни. Вот что я узнал:

1 Начало ссылки выглядит следующим образом: https://www.google.com/maps/place/

2 Затем вы указываете свой адрес:

  • Используйте + вместо любого пространства.
  • Поместите запятую спереди и сзади города.
  • Включить почтовый/почтовый индекс и область/штат.
  • Заменить любой # ничем.
  • Заменить любые ++ или ++++ с помощью одного +

3 Поместите адрес после места /

4 Затем поставьте косую черту в конце.

ПРИМЕЧАНИЕ. Слэш в конце был важен. После того, как пользователь нажимает на ссылку, Google идет вперед и добавляет больше URL-адреса, и они делают это после этой косой черты.

Рабочий пример для этого вопроса:

https://www.google.ca/maps/place/1200+Pennsylvania+Ave+SE,+Washington,+DC+20003/

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

Ответ 5

Это то, что я нашел в одной из статей Google Maps:

  • Откройте Карты Google.
  • Убедитесь, что на карте отображается изображение карты или изображения улиц, которое вы хотите вставить.
  • В левом верхнем углу нажмите главное меню ☰.
  • Нажмите Поделиться или вставлять карту.
  • В верхней части появившегося окна выберите вкладку Вставить карту.
  • Выберите нужный размер, затем скопируйте код и вставьте его в исходный код своего веб-сайта или блога.

Примечание. Если вы используете Карты в Lite режиме, вы не сможете вставлять карта. Имейте в виду, что информация о дорожном движении и некоторые другие данные Карты могут быть недоступны во встроенной карте.

введите описание изображения здесь

Ответ 6

В http://www.labnol.org/internet/tools/short-urls-for-google-maps/6604/ они показывают короткий URL-адрес, который работает довольно хорошо

URL-адреса Google Maps довольно громоздки, особенно при отправке через IM, твит или электронную почту. MapOf.it предоставляет вам быстрый способ связи с Google Maps, просто указав адрес местоположения в качестве параметра поиска.

http://mapof.it/

Я использовал его для нескольких приложений, которые я разработал, и он работал как шарм.

Ответ 7

Лучше всего использовать эту строку:

var mapUrl = "http://maps.google.com/maps?f=q&amp;source=s_q&amp;hl=en&amp;geocode=&amp;q=16900+North+Bay+Road,+Sunny+Isles+Beach,+FL+33160&amp;aq=0&amp;sll=37.0625,-95.677068&amp;sspn=61.282355,146.513672&amp;ie=UTF8&amp;hq=&amp;hnear=16900+North+Bay+Road,+Sunny+Isles+Beach,+FL+33160&amp;spn=0.01628,0.025663&amp;z=14&amp;iwloc=A&amp;output=embed"

Не забудьте заменить первый и второй адреса, если это необходимо.

Вы можете посмотреть образец работы

Ответ 8

http://maps.google.com/maps?q=<?php echo urlencode($address); ?> 

кодировка ur конвертирует и добавляет все дополнительные элементы, такие как пробелы и все. так что вы можете легко получить плоский текстовый код из db и использовать его без заботы о специальных символах, которые нужно добавить

Ответ 9

У меня была аналогичная проблема, когда мне нужно было выполнить это для каждого адреса на сайте (каждый из которых был упакован в тег адреса). Этот бит jQuery работал у меня. Он будет захватывать каждый тэг <address> и переносить его в ссылку google maps с адресом, содержащим тег!

$("address").each(function(){

    var address = $(this).text().replace(/\,/g, '');
    var url = address.replace(/\ /g, '%20');

    $(this).wrap('<a href="http://maps.google.com/maps?q=' + url +'"></a>');

}); 

Рабочий пример → https://jsfiddle.net/f3kx6mzz/1/

Ответ 10

Заимствуя решения Michael Jasper и Jon Hendershot, я предлагаю следующее:

$('address').each(function() {
    var text = $(this).text();

    var q    = $.trim(text).replace(/\r?\n/, ',').replace(/\s+/g, ' ');
    var link = '<a href="http://maps.google.com/maps?q=' + encodeURIComponent(q) + '" target="_blank"></a>';

    return $(this).wrapInner(link);
});

Это решение предлагает следующие преимущества перед ранее предложенными решениями:

  • Он не будет удалять теги HTML (например, теги <br>) в <address>, поэтому форматирование сохраняется
  • Он правильно кодирует URL
  • Он выдает лишние пробелы, так что сгенерированный URL-адрес короче и чище и читается человеком после кодирования
  • Он создает допустимую разметку (решение Mr.Hendershot создает <a><address></address></a>, что является недопустимым, поскольку элементы встроенного уровня, такие как <address>, недопустимы внутри встроенных элементов, таких как <a>.

Caveat. Если тэг <address> содержит элементы уровня блока, такие как <p> или <div>, тогда этот код JavaScript будет отображаться с недопустимой разметкой (поскольку тег <a> будет содержать эти элементы уровня блока). Но если вы просто делаете такие вещи:

<address>
  The White House
  <br>
  1600 Pennsylvania Ave NW
  <br>
  Washington, D.C.  20500
</address>

Тогда все будет хорошо.

Ответ 11

Если у вас есть широта и долгота, вы можете использовать любую часть или весь приведенный ниже URL

https://www.google.com/maps/@LATITUDE,LONGITUDE,ZOOMNUMBERz?hl=LANGUAGE

Например: https://www.google.com/maps/@31.839472,54.361167,18z?hl=ru.

Ответ 13

Метод С# Replace обычно работает для меня:

foo = "http://maps.google.com/?q=" + address.Text.Replace(" ","+");

Ответ 14

Я только что нашел это и хотел бы поделиться.

  • найдите свой адрес на maps.google.com
  • щелкните значок шестеренки в правом нижнем углу.
  • нажмите "общая или встроенная карта"
  • установите флажок short url и вставьте результат в href..

Ответ 15

С помощью этого инструмента карты вы можете ввести адрес, нажать кнопку "Найти", увеличить масштаб, сделать заметку для себя или других читателей и получить короткую ссылку на свою карту, которую вы можете отправить по электронной почте или текстовому сообщению кому-то другому.

Вот карта, которую я сделал, используя адрес, который вы указали: http://www.sooeet.com/ses06468

Инструмент "Карта" находится здесь: http://www.sooeet.com/maps/place-marker-map.php

Он делает все, что вам нужно, и вы также получаете широту и долготу.