google-maps - 将 Google Maps API v3 链接粘贴到电子邮件中

标签 google-maps google-maps-api-3

您好,我有以下使用 Google map API 版本 3 的网页。是否可以创建一个按钮或右键单击 map 并将链接发送给类似于 Google map “链接”按钮的人,该按钮允许您“在电子邮件或即时消息中粘贴链接”您正在查看的放大级别和范围?我已经搜索过这个但找不到任何东西。谢谢!

https://netfiles.uiuc.edu/alouchio/shared/ztest.shtml

最佳答案

没有任何现成的东西可以让您做到这一点,但是您自己实现它应该不会太困难。首先,您需要为页面定义一些查询字符串参数,可用于导航到特定位置。要设置正确的位置和缩放级别,您需要三个参数:纬度、经度和缩放,因此您的网址可能如下所示:

https://netfiles.uiuc.edu/alouchio/shared/ztest.shtml?lat=40.300842&lng=-86.864734&z=6

然后,当您初始化 map 时,您需要检查这些参数是否存在,如果存在,则适当定位 map :

要读取查询字符串,我们需要一个函数来处理该部分,这是一个简单的函数:

// 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;
} 

然后您可以检查是否存在正确的查询字符串参数,该参数应该在初始化 map 后调用...

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"])),

关于google-maps - 将 Google Maps API v3 链接粘贴到电子邮件中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10252236/

相关文章:

android - 在谷歌地图上添加多个覆盖项目

javascript - 如何在javascript中的函数之外保存变量值

google-maps - 谷歌地图 KML : 8-Digit Hex Code

javascript - Google Maps API,如何从机场代码获取经纬度?

java - 我自己的应用程序中两个位置之间的谷歌地图行车路线

javascript - 当谷歌地图标记共享相同的像素时,集群它们

r - get_map 未传递 API key (HTTP 状态为 '403 Forbidden' )

javascript - 略微扩展谷歌地图的边界

google-maps - 计算谷歌地图中两个火车站的路线距离

javascript - 如何在 Google map API 中设置数据层特征标签的样式?