您好我有以下使用Google Maps API版本3的网页。是否可以创建按钮或右键单击地图并将链接发送给类似于Google地图“链接”按钮的人,该按钮允许您“粘贴电子邮件或即时消息中的链接”的放大级别和您正在查看的范围?我搜索过这个但找不到任何东西。谢谢!
答案 0 :(得分:2)
没有什么可以让你做到这一点的开箱即用,但是自己实施它应该不会很困难。首先,您需要为可用于导航到特定位置的页面定义一些查询字符串参数。要设置正确的位置和缩放级别,您需要三个参数:纬度,经度和缩放,因此您的网址可能如下所示:
https://netfiles.uiuc.edu/alouchio/shared/ztest.shtml?lat=40.300842&lng=-86.864734&z=6
然后,在初始化地图时,您需要检查是否存在这些参数,如果是,请正确定位地图:
要读取查询字符串,我们需要一个函数来处理该部分,这里有一个简单的部分:
// A function to get the qs params, borrowed from http://jquery-howto.blogspot.com/2009/09/get-url-parameters-values-with-jquery.html
function getUrlVars()
{
var vars = [], hash;
var hashes = window.location.href.slice(window.location.href.indexOf('?') + 1).split('&');
for(var i = 0; i < hashes.length; i++)
{
hash = hashes[i].split('=');
vars.push(hash[0]);
vars[hash[0]] = hash[1];
}
return vars;
}
然后你可以检查是否存在正确的查询字符串参数,应该在初始化地图后调用...
var params = getUrlVars();
if (params["lat"] && params["lng"] && params["z"])
{
map.setCenter(new GLatLng(parseFloat(params["lat"]),
parseFloat(params["lng"]), parseInt(params["z"]));
}
最后,要生成链接,您可以创建一个按钮来生成链接信息:
function showLink()
{
var ctr = map.getCenter();
alert("https://netfiles.uiuc.edu/alouchio/shared/ztest.shtml?lat="
+ ctr.lat().toString() + "&lng=" + ctr.lng().toString() + "&z=" + map.getZoom().toString());
}
而不是我使用的map.setCenter:
var myOptions1 = {
zoom: parseInt(params["z"]),
center: new google.maps.LatLng(parseFloat(params["lat"]), parseFloat(params["lng"])),