html - 使用分享网址嵌入谷歌地图

标签 html google-maps

例如,您转到谷歌地图并搜索“沃尔玛”,然后选择列表中的第一个沃尔玛,您将获得如下 URL: https://www.google.com/maps/place/Walmart+Supercenter/@41.7991677,-70.5882922,10z/data=!4m5!1m2!2m1!1swalmart!3m1!1s0x89e4c6127cc5b685:0x104d337439f46ea9

然后,如果您转到该 URL,它会为您提供带有精确定位的有效 map 。这个(上图)是将存储在我的数据库中的 URL,因此也是我想用来嵌入 map 的 URL。

当然,我不能使用该 URL 嵌入到 iframe 中,而是必须使用: https://www.google.com/maps/embed?pb=!1m14!1m8!1m3!1d380717.11119594605!2d-70.5882922!3d41.7991677!3m2!1i1024!2i768!4f13.1!3m3! 1m2!1s0x89e4c6127cc5b685%3A0x104d337439f46ea9!2sWalmart+Supercenter!5e0!3m2!1sen!2sus!4v1445294674664

那么...对于任何可共享的 Google map url,我如何将其转换为可嵌入的 url 以用作 iframe src

我可以在服务器端使用 PHP 或在客户端使用 javascript。使用正则表达式是可以接受的。

最佳答案

这可以解决问题:

$matches = [];

preg_match("/@(.*?),(.*?),/",$str,$matches);

$place = $matches[1];

preg_match("/@(.*?),(.*?),/",$str,$matches);

$lat = $matches[1];
$long = $matches[2];

echo '<iframe src="https://www.google.com/maps/embed/v1/place?q='.$place.'&center='.$lat.','.$long.'&key=AIzaSyAN0om9mFmy1QN6Wf54tXAowK4eT0ZUPrU&zoom=8" frameborder="0"></iframe>';

在第一个 @char 之后,它位于纬度和经度,您可以使用我编写的正则表达式提取它们,然后捕获 2 组的输出并将其添加到嵌入 URL。

关于html - 使用分享网址嵌入谷歌地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33225287/

相关文章:

javascript - 使用 base64 编码图像是否有一些性能优势?

javascript - UIWebView - 以编程方式设置默认日期

ios - 检测 GMSMapView 缩放

google-maps - 在 Google Maps API V3 中获取非环绕 map 边界

Android Google Maps Api V2 崩溃

c# - ASP.NET 中的数据列表不会显示?

javascript - 如何在数字输入中添加加号和减号并更新值

javascript - 如何在换行符上自定义插入的 contentEditable 的 div?

javascript - 如何访问由 DirectionsRenderer 在 Google Maps V3 中创建的对象

javascript - 如何使用 javascript api v3 在 flash 中显示 Google map ?