使用共享网址嵌入谷歌地图

Ree*_*eed 2 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,它会为您提供一个带有精确定位的有效地图.这(上面)是将​​存储在我的数据库中的URL,因此我想用来嵌入地图的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地图网址,如何将其转换为可嵌入的网址以用作iframe src

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

Bur*_*imi 5

这可以做到这一点:

$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>';
Run Code Online (Sandbox Code Playgroud)

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