Javascript 函数使用链接中的值(如果可用)

Javascript 函数使用链接中的值(如果可用),javascript,google-maps,google-maps-api-3,google-api,Javascript,Google Maps,Google Maps Api 3,Google Api,我不确定如何正确解释这一点,但我基本上希望通过谷歌API在地图上显示标记,并在标记上有指向该位置的链接。但是,目前只有当用户允许跟踪他们的位置时,它才起作用 我想做的是,在这两种情况下,基本上都有这些标记,用户允许也不允许跟踪他们的位置,但只会更改链接 因此,如果用户允许跟踪他们的位置,链接将被删除 var reitiohjeet=“”+pos+“/”+osoite 如果用户拒绝跟踪他们的位置,链接将被删除 var reitiohjeet2=“”+osoite 我尝试创建替代函数,该函数将在if

我不确定如何正确解释这一点,但我基本上希望通过谷歌API在地图上显示标记,并在标记上有指向该位置的链接。但是,目前只有当用户允许跟踪他们的位置时,它才起作用

我想做的是,在这两种情况下,基本上都有这些标记,用户允许也不允许跟踪他们的位置,但只会更改链接

因此,如果用户允许跟踪他们的位置,链接将被删除

var reitiohjeet=“”+pos+“/”+osoite

如果用户拒绝跟踪他们的位置,链接将被删除

var reitiohjeet2=“”+osoite

我尝试创建替代函数,该函数将在if(navigator.geolocation)的else子句中运行,但这似乎没有任何作用

function initialize() {
    var mapOptions =  {
        center: new google.maps.LatLng(60.174,24.927),
        zoom: 8
    };
    var map = new google.maps.Map(document.getElementById("map-canvas"), mapOptions);

    if(navigator.geolocation) {
        navigator.geolocation.getCurrentPosition(function(position) {
            var pos = new google.maps.LatLng(position.coords.latitude,
                                             position.coords.longitude);

            // Luo marker
            var image = 'user-location.png';
            var userMarker = new google.maps.Marker({
                position: pos,
                map: map,
                icon: image
            });

            map.setCenter(pos);

            setMarkers(map, shops, pos);
        }, function() {
            handleNoGeolocation(true);
        });
    } else {
        handleNoGeolocation(false);
    }
}

function setMarkers(map, locations, pos) {

    for (var i = 0; i < locations.length; i++) {
        var shop = locations[i];
        var myLatLng = new google.maps.LatLng(shop[1], shop[2]);
        var nimi = shop[0];
        var osoite = shop[5];
        var puhelinnumero = shop[3];
        var verkkosivu = shop[4];
        var reittiohjeet = "https://www.google.fi/maps/dir/"+pos+"/"+osoite;
        var content = "<div class='content'><h3>"+nimi+"</h3><strong>Osoite:</strong> "+osoite+"<br /><strong>Puhelinnumero:</strong> "+puhelinnumero+"<br /><strong>Verkkosivu:</strong> <a href='"+verkkosivu+"' target='_blank'>"+verkkosivu+"</a><br /><br /><a href='"+reittiohjeet+"'>Reittiohjeet</a></div>";
        var marker = new google.maps.Marker({
            position: myLatLng,
            map: map,
            title: shop[0]
        });

        var infowindow = new google.maps.InfoWindow()

        google.maps.event.addListener(marker,'click', (function(marker,content,infowindow){ 
            return function() {
                infowindow.setContent(content);
                infowindow.open(map,marker);
            };
        })(marker,content,infowindow));  
    }
}
函数初始化(){
变量映射选项={
中心:新google.maps.LatLng(60.174,24.927),
缩放:8
};
var map=new google.maps.map(document.getElementById(“地图画布”),mapOptions);
if(导航器.地理位置){
navigator.geolocation.getCurrentPosition(函数(位置){
var pos=新的google.maps.LatLng(position.coords.latitude,
位置坐标经度);
//罗马克
var image='user location.png';
var userMarker=new google.maps.Marker({
职位:pos,,
地图:地图,
图标:图像
});
地图设置中心(pos);
设置标记(地图、商店、pos);
},函数(){
手持导航(真);
});
}否则{
手动定位(假);
}
}
功能设置标记(地图、位置、位置){
对于(变量i=0;iOsoite:“+Osoite+”
“+Puhelinnumero+”
Verkkosivu:

”; var marker=new google.maps.marker({ 职位:myLatLng, 地图:地图, 标题:店铺[0] }); var infowindow=new google.maps.infowindow() google.maps.event.addListener(标记,'click',(函数(标记,内容,信息窗口){ 返回函数(){ infowindow.setContent(content); 信息窗口。打开(地图、标记); }; })(标记、内容、信息窗口); } }
只有当浏览器不支持地理位置时,才会执行else子句中的语句

当用户拒绝访问时,将执行定义为getCurrentPosition第二个参数的函数

注意:在Firefox中,这将无法按预期工作,请参阅: