例如,您转到谷歌地图并搜索“沃尔玛”,然后选择列表中的第一个沃尔玛,您将获得如下 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.'¢er='.$lat.','.$long.'&key=AIzaSyAN0om9mFmy1QN6Wf54tXAowK4eT0ZUPrU&zoom=8" frameborder="0"></iframe>';
在第一个 @char 之后,它位于纬度和经度,您可以使用我编写的正则表达式提取它们,然后捕获 2 组的输出并将其添加到嵌入 URL。
关于html - 使用分享网址嵌入谷歌地图,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/33225287/