我最近遇到了一个网站,您可以在其中将常规Google地图网址拖到他们的网页上,它会自动通过iframe嵌入它。我阅读了Google Maps Embed API,看起来似乎无法做到这一点。我不确定是否可以使用正则表达式来提取参数。
// Sample https://www.google.com/maps/@37.3321023,-121.9035969,14z
$(button).click(function() {
reg-url = $('#inputbox').val();
convert();
});
function convert() {
embedid = //get param from reg-url
$('.wrapper').html("<iframe src='https://www.google.com/maps/embed?pb="+embedid+"'>");
}
所以基本上我想创建一个jquery函数,将常规地图网址转换为嵌入网址。
答案 0 :(得分:3)
function GoogleMapsURLToEmbedURL(GoogleMapsURL)
{
var coords = /\@([0-9\.\,\-a-zA-Z]*)/.exec(GoogleMapsURL);
if(coords!=null)
{
var coordsArray = coords[1].split(',');
return "https://www.google.com/maps/embed?pb=!1m14!1m12!1m3!1d20000!2d"+coordsArray[1]+"!3d"+coordsArray[0]+"!2m3!1f0!2f0!3f0!3m2!1i1024!2i768!4f13.1!5e0!3m2!1sen!2suk!4v1486486434098";
}
}
在您的样本中: -
https://www.google.com/maps/@37.3321023,-121.9035969,14z
在'@'之后,37.3321023是一个坐标,-121.9035969是第二个,14z是缩放。
我已经为你完成了坐标,所有你需要做的就是编写一些if if来将变焦转换成嵌入的整数(我把它设置为总是20000,看起来根据网络界面,大约在第14个缩放级别。