Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/html/72.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
地理定位谷歌地图链接jQuery_Jquery_Html_Google Maps Api 3 - Fatal编程技术网

地理定位谷歌地图链接jQuery

地理定位谷歌地图链接jQuery,jquery,html,google-maps-api-3,Jquery,Html,Google Maps Api 3,当我点击手机上的一个链接时,我想要一个提示,询问用户是否愿意检测位置,如果愿意,打开谷歌地图,显示从当前位置到最终目的地的方向 这就是我所拥有的,但是当我点击链接时,它会转到备用默认链接 <a class="geo" href="http://maps.google.com/maps?ll=40.822419,-73.993124">Get Directions</a> $("a.geo").click(function(e)) { if (navigator.

当我点击手机上的一个链接时,我想要一个提示,询问用户是否愿意检测位置,如果愿意,打开谷歌地图,显示从当前位置到最终目的地的方向

这就是我所拥有的,但是当我点击链接时,它会转到备用默认链接

<a class="geo" href="http://maps.google.com/maps?ll=40.822419,-73.993124">Get Directions</a>

$("a.geo").click(function(e)) {
    if (navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(getLoc, handle_errors);
    }
    e.preventDefault();
});

function getLoc(position) {
    var geoLat = position.coords.latitude;
    var geoLon = position.coords.longitude;
    var gmapLink = "http://maps.google.com/maps?saddr=" + geoLat + "," + geoLon + "&daddr=40.822419,-73.993124";
    $("a.geo").attr("href", gmapLink);
}

$(“a.geo”)。单击(功能(e)){
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(getLoc,handle\u错误);
}
e、 预防默认值();
});
功能getLoc(位置){
var geoLat=位置坐标纬度;
var geoLon=位置坐标经度;
变量gmapLink=”http://maps.google.com/maps?saddr=“+geoLat+”、“+geoLon+”&daddr=40.822419,-73.993124”;
$(“a.geo”).attr(“href”,Gmail);
}

在用户单击链接后,如何将href替换为新链接以及用户的位置?

替换您的行,这会更改
href
属性:

$("a.geo").attr("href", gmapLink);
通过重定向:

window.location.assign(gmapLink);

同样值得将
e.preventDefault()
移动到
if(navigator.geolocation)
块中,这样,如果没有可用的地理位置,用户仍然可以转到谷歌地图并自己插入他们的位置。

以下内容适合我。注意,我将上下文代理给getLoc函数,因此$(this)仍然是我们在获取回调时按下的链接,并添加了一个click触发器来实际单击该链接。另一种解决方案是使用window.location

$("a.geo").click(function(e) {               
    if (navigator.geolocation) {
        e.preventDefault();
        navigator.geolocation.getCurrentPosition(
             $.proxy( getLoc, $(this) )                    
            , handle_errors);          
    }
});

function getLoc(position) {                     
    var geoLat = position.coords.latitude;
    var geoLon = position.coords.longitude;
    var gmapLink = "http://maps.google.com/maps?saddr=" + geoLat + "," + geoLon + "&daddr=40.822419,-73.993124";        
    $(this).attr("href", gmapLink);
    $(this).trigger('click');
}

谢谢你。一个问题tho-如果用户不希望站点获得位置,我如何将他们重定向到最初在html中设置的href(使用google地图链接)?