Як перетворити адресу в посилання на Карти Google (НЕ МАРТ)


297

Подивившись (Googling) в Інтернеті на деякий час, я не можу знайти нічого, що займає таку адресу, як:

1200 Пенсильванія пр. SE, Вашингтон, округ Колумбія, 20003

і перетворює його в інтерактивне посилання:

http://maps.google.com/maps?f=q&source=s_q&hl=uk&q=1200+Pennsylvania+Ave+SE ,+Washington,+District+of+Columbia,+20003&sll=37.0625,-95.677068&sspn=44.118686,114.169922 & тобто = UTF8 & cd = 1 & геокод = FT5MUQIdIDlp-w & split = 0 & ll = 38,882147, -76,99017 & spn = 0,01064,0,027874 & z = 16 & iwloc = A

jQuery або PHP бажано або просто будь-яку корисну інформацію щодо цього.

Відповіді:


681

Як щодо цього?

https://maps.google.com/?q=1200 Pennsylvania Ave SE, Вашингтон, округ Колумбія, 20003

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

Якщо у вас є lat-long, то використовуйте нижче 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 

7
Як я можу створювати за допомогою широти та довготи?
nadeem gc

4
Схоже, що цей метод є невеликим дефектом, якщо користувач використовує нові Карти Google. Щоб створити посилання, яке змушує відображати сторінку в класичному режимі, просто додайте &output=classicдо неї посилання. Отже, вся справа виглядала б так:http://maps.google.com/?q=1200%20Pennsylvania%20Ave%20SE,%20Washington,%20District%20of%20Columbia,%2020003&output=classic
Метт

4
@Matt Як це лускати? Крім того, output = classic не залишиться назавжди, а що робити, якщо користувач віддає перевагу новим картам?
Кріс Б

2
Будь-який спосіб отримати крапку на карті за допомогою URL-адреси?
блоха

5
Це до сих пір відмінно працює (спасибі @ChrisB!) , Але це виглядає як власний формат Google Maps є в даний час https://www.google.com/maps/place/1200 Pennsylvania Ave SE, Washington, District of Columbia, 20003 ¶ Для деяких місць ви можете піти з використанням тільки імені ... але maps.google.com/?q=і www.google.com/maps/place/не обов'язково повертати ті ж результати: https://www.google.com/maps/place/White HouseРозкривається в https://www.google.com/maps/place/The+White+House,+1600+Pennsylvania+Ave+NW,+Washington,+DC+20500але https://maps.google.com/?q=White Houseдарує мені антикварний магазин в NC
Генрі

67

Я знаю, що я дуже спізнююся на гру, але подумав, що буду робити внесок заради нащадків.

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

@Michael Jasper thanx для ур-коду ... він отримав мені карту в діві ... але моя проблема полягає в контактній інформації отримує спливаюче вікно ... чого я не хочу. тож ви можете мені керуватись тим, як не відкривати контактну скриньку для PIN-коду. ????????.thnx заздалегідь ...
Shwet

3
Майте на увазі, що <address>тег HTML5 призначений не для надання поштової адреси, а для надання контактної інформації, що стосується вмісту (як правило, автора). developer.mozilla.org/en-US/docs/Web/HTML/Element/address
Neograph734

Чудова відповідь! Дякую, що поділились. Я не впевнений, наслідки цього, але це спрацювало навіть без цього encodeURIComponent().
moreirapontocom

12

Лютий 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/

Я сподіваюся, що це допомагає.


хоча приклад працює, я не зміг відтворити це для німецької адреси. Я в кінцевому підсумку реалізував відповідь Кріса Б (... /? Q = термін).
gl03

На щастя, це зараз працює і для німецьких адрес. Дивіться: google.com/maps/place/…
Yannick Schuchmann



2

Запозичуючи рішення Майкла Джаспера та Джона Хендершота, я пропоную наступне:

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

Тоді це буде добре.


Я використовував ваше рішення у своєму проекті, просто підключивши ваш код до моїх потреб. Це працює наразі.
Mycodingproject

2

Ось що я знайшов з однієї із статей Google Maps:

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

Примітка . Якщо ви використовуєте Карти в режимі Lite , ви не зможете вставити карту. Майте на увазі, що інформація про дорожній рух та інша інформація про Карти можуть бути недоступними на вбудованій карті.

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


Це працює для мене. Скопіюйте цей вбудований код та вставте на свій веб-сайт.
Кабір Хоссайн

1

На http://www.labnol.org/internet/tools/short-urls-for-google-maps/6604/ вони показують коротку URL-адресу, яка працює досить добре

URL-адреси Карт Google досить непрості, особливо при надсиланні через чат, твіт чи електронну пошту. MapOf.it надає вам швидкий спосіб зв’язатися з Картами Google, просто вказавши адресу місцезнаходження як параметр пошуку.

http://mapof.it/

Я використовував його для декількох застосованих мною програм, і це працювало як шарм.


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

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


1
encodeURIComponent - це javascript, ви повинні використовувати urlencode ($ address);
ximi

1

Найкращий спосіб використовувати цей рядок:

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

У мене була подібна проблема, коли мені потрібно було виконати це для кожної адреси на сайті (кожна загорнута в тег адреси). Цей біт 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/


2
Замість того, щоб вручну намагатися отримати URL-адресу для виходу з рядка, ви можете використовувати його encodeURIComponent.
Самуель

0

Також усі, хто хоче вручну URLENCODE адресу: http://code.google.com/apis/maps/documentation/webservices/index.html#BuildingURLs

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


Це, на жаль, призводить до 404.
Даррен Монахан

1
Вибачте. Цей коментар дуже старий ... я сумніваюсь, що версія API, яка використовувалася в цьому питанні, все ще існує, але ось те, на що посилається посилання: web.archive.org/web/20110420023220/https:// code.google.com/apis/…
Ed Meacham


0

Я просто знайшов це і люблю поділитися ..

  1. шукайте свою адресу на maps.google.com
  2. натисніть на значок шестірні в нижньому правому куті
  3. натисніть "загальнодоступну або вставити карту"
  4. натисніть коротку прапорець URL і вставте результат у href ..
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.