it-swarm.com.ru

Как преобразовать адрес в ссылку на 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,99017 & шп = 0.01064,0.027874 & г = 16 & iwloc = А

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

270
Phill Pafford

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

https://maps.google.com/?q=1200 Pennsylvania Ave SE, Вашингтон, округ Колумбия, 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 
632
Chris B

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

Я написал короткую функцию 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);             
    });
});
65
Michael Jasper

Фев 2016

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

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/

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

10
Colin P
3
Nolmë Informatique

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

  1. Открыть Google Maps .
  2. Убедитесь, что на карте отображается карта или изображение Просмотр улиц, которое вы хотите встроить.
  3. В верхнем левом углу нажмите главное меню ☰.
  4. Нажмите Поделиться или вставить карту .
  5. В верхней части появившегося окна выберите вкладку .
  6. Выберите нужный размер, затем скопируйте код и вставьте его в исходный код своего сайта или блога.

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

enter image description here

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

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

1
dhpratik

У меня была похожая проблема, когда мне нужно было выполнить это для каждого адреса на сайте (каждый из них обернут в адресную метку). Этот бит 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/

1
Jon Hendershot

Лучший способ - использовать эту строку:

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"

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

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

1
Eugene Bosikov

Заимствуя решения Майкла Джаспера и Джона Хендершота, я предлагаю следующее:

$('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>

Тогда это будет работать просто отлично.

1
7over21

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

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

http://mapof.it/

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

1
Custom Web

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

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

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

1
Mohammad Fathi MiMFa

Кроме того, любой, кто хочет вручную URLENCODE адрес: http://code.google.com/apis/maps/documentation/webservices/index.html#BuildingURLs

Вы можете использовать это для создания определенных правил, которые соответствуют GM стандартам.

0
Ed Meacham

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

  1. найдите свой адрес на maps.google.com
  2. нажмите на значок шестеренки в правом нижнем углу
  3. нажмите "поделиться или вставить карту"
  4. установите флажок для короткого URL и вставьте результат в href.
0
Unknown-Me

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

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