2009-08-19 9 views
229

После просмотра (Googling) в Интернете на некоторое время, я не могу найти ничего, что берет адрес, как:Как преобразовать адреса в Google Maps Link (НЕ MAP)

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&ie=UTF8&cd=1&geocode=FT5MUQIdIDlp-w&split=0&ll=38.882147,-76.99017&spn=0.01064,0.027874&z=16&iwloc=A

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

ответ

559

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

https://maps.google.com/?q=1200 Pennsylvania Ave SE, Washington, District of Columbia, 20003

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

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

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

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

UPDATE

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

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

Wow that simple, Thnx a ton !!! –

+1

Просто хотел «ВВЕРХ» стрелка. – Si8

+7

Как создать с широтой и долготой? –

1

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

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

http://mapof.it/

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

1

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

Вы можете использовать, чтобы создать определенные правила, которые отвечают стандартам GM.

+0

Теперь это приводит к 404, к сожалению. –

+1

Извините. Этот комментарий очень старый ... Я сомневаюсь, что версия API, которая использовалась в этом вопросе, все еще существует, но вот ссылка, на которую ссылалась ссылка: http://web.archive.org/web/20110420023220/ https://code.google.com/apis/maps/documentation/webservices/index.html –

61

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

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

See a demo here.

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

Бонус:

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

View a full demo

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

Удивительная идея. Вот что такое семантическая сеть. – Rap

+0

@ Michael Jasper thanx для кода ур ... он получил мне карту в div ... но моя проблема в том, что информация о штыре получает всплывающее окно ... которое я не хочу. так что я могу посоветовать мне, как не открывать окно с информацией о бункере., ... .thnx заранее ... – Shwet

+0

@Michael, спасибо за долю ... спас мне кучу времени. –

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" 

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

You can look at work sample

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

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

+1

encodeURIComponent - это javascript, вы должны использовать urlencode ($ address); – ximi

+1

спасибо @ximi .... – dhpratik

0

Заменить метод C# обычно работает для меня:

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

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

  1. поиск ваш адрес на maps.google.com
  2. нажмите на значок шестеренки в правом нижнем
  3. нажмите кнопку «общий или встраивать карту "
  4. нажмите Short URL флажок и вставить результат в HREF ..
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

Вместо того, чтобы вручную пытаться убежать от строки, вы можете вместо этого использовать 'encodeURIComponent'. – Samuel

0

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

$('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. решение Хендершот создает <a><address></address></a>, который является недействительным, поскольку блочные элементы, такие как <address> не разрешается в пределах встроенных элементов, таких как <a>

РИСКОВАННАЯ:. Если ваш <address> тег содержит элементы уровня блока, такие как <p> или <div>, тогда этот код JavaScript будет отображаться с недопустимой разметкой (поскольку тег <a> будет содержать те элементы уровня блока). Но если вы просто делаете такие вещи:

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

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

1

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

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

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

enter image description here

+0

Это работает для меня. Скопируйте этот код для вставки и вставьте его на свой сайт. –

8

февраля, 2016:

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

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

Затем вы кладете свой адрес:

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

Поместите адрес после того, как на место/

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

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

Рабочий пример на этот вопрос:

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

Я надеюсь, что помогает.

+0

пока пример работает, я не смог воссоздать это для немецкого адреса. Я закончил реализацию ответа Криса Б (... /? Q = term). – gl03

+0

К счастью, теперь это работает и для немецких адресов. См. Https://www.google.com/maps/place/Fritz-Reuter-Schule%2C+K%C3%B6nigsberger+Stra%C3%9Fe%2C+Tornesch%2C+Deutschland/ –

 Смежные вопросы

  • Нет связанных вопросов^_^