340

在网上(谷歌搜索)一段时间后,我找不到任何地址,例如:

1200 宾夕法尼亚大道 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 或任何有用的信息。

4

14 回答 14

755

这个怎么样?

https://maps.google.com/?q=1200 Pennsylvania Ave SE,华盛顿,哥伦比亚特区,20003

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

如果您有经纬度,请使用以下网址

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

示例:maps.google.com/ ?ll=38.882147,-76.99017

更新

截至 2017 年,谷歌现在有一种创建跨平台谷歌地图 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 
于 2009-08-19T15:54:13.573 回答
72

我知道我参加比赛的时间很晚,但我想我会为后代做出贡献。

我编写了一个简短的 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);             
    });
});
于 2011-10-26T03:45:10.803 回答
12

2016 年 2 月:

我需要根据客户端输入的数据库值来执行此操作,并且没有纬度/经度生成器。这些天谷歌真的很喜欢纬度/经度。这是我学到的:

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/

我希望这会有所帮助。

于 2016-02-23T15:57:03.103 回答
4

这个怎么样:http: //support.google.com/maps/bin/answer.py ?hl=en&answer=72644

于 2012-06-15T19:10:00.207 回答
3

I had a similar issue where I needed to accomplish this for every address on the site (each wrapped in an address tag). This bit of jQuery worked for me. It'll grab each <address> tag and wrap it in a google maps link with the address the tag contains contains!

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

}); 

Working example --> https://jsfiddle.net/f3kx6mzz/1/

于 2015-03-17T15:33:23.267 回答
2

最好的方法是使用这条线:

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"

记得在必要时替换第一个和第二个地址。

你可以看看工作样本

于 2013-01-07T00:12:20.293 回答
2

如果您有纬度和经度,您可以使用以下网址的任何部分或全部

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

例如: https ://www.google.com/maps/@31.839472,54.361167,18z?hl=en

于 2018-08-09T07:27:04.973 回答
2

借用 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>.

警告:如果您的标签包含类似or<address>的块级元素,则此 JavaScript 代码将生成无效标记(因为标签将包含这些块级元素)。但如果你只是在做这样的事情:<p><div><a>

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

然后它会工作得很好。

于 2015-09-10T16:52:06.673 回答
2

这是我从一篇 Google 地图文章中发现的:

  1. 打开谷歌地图
  2. 确保您要嵌入的地图或街景图像显示在地图上。
  3. 在左上角,单击主菜单​☰。
  4. 单击共享或嵌入地图
  5. 在出现的框顶部,选择嵌入地图选项卡。
  6. 选择您想要的大小,然后复制代码并将其粘贴到您的网站或博客的源代码中。

注意:如果您在Lite 模式下使用地图,您将无法嵌入地图。请记住,嵌入式地图中可能不提供交通信息和其他一些地图信息。

在此处输入图像描述

于 2015-09-15T18:48:43.533 回答
1

http://www.labnol.org/internet/tools/short-urls-for-google-maps/6604/上,它们显示了一个运行良好的短 URL

谷歌地图 URL 非常笨拙,尤其是在通过 IM、推文或电子邮件发送时。MapOf.it 为您提供了一种快速链接到 Google 地图的方法,只需将位置地址指定为搜索参数即可。

http://mapof.it/

我将它用于我设计的一些应用程序,它就像一个魅力。

于 2011-05-12T09:10:25.807 回答
1
http://maps.google.com/maps?q=<?php echo urlencode($address); ?> 

编码你的转换器并添加所有额外的元素,如空格和所有。因此您可以轻松地从数据库中获取平面文本代码并使用它,而无需担心要添加的特殊字符

于 2013-01-08T17:52:08.617 回答
0

我刚找到这个并喜欢分享..

  1. 在 maps.google.com 上搜索您的地址
  2. 点击右下角的齿轮图标
  3. 点击“共享或嵌入地图”
  4. 单击短网址复选框并将结果粘贴到 href..
于 2015-02-18T10:52:26.293 回答
0

此外,任何想要手动对地址进行 URLENCODE 的人:http ://code.google.com/apis/maps/documentation/webservices/index.html#BuildingURLs

您可以使用它来创建符合 GM 标准的特定规则。

于 2011-05-20T13:09:20.590 回答
0

C# Replace 方法通常对我有用:

foo = "http://maps.google.com/?q=" + address.Text.Replace(" ","+");
于 2014-01-12T07:28:56.867 回答