比如,你去谷歌地图并搜索'沃尔玛',然后选择列表中的第一个沃尔玛,你会得到一个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进行服务器端.使用正则表达式是可以接受的.
这可以做到这一点:
$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>';
Run Code Online (Sandbox Code Playgroud)
在第一个@ char之后,它位于纬度和logitude,您可以使用我编写的正则表达式提取,然后捕获2组上的输出并将其添加到嵌入的URL上.
| 归档时间: |
|
| 查看次数: |
4486 次 |
| 最近记录: |