Javascript 函数使用链接中的值(如果可用)
我不确定如何正确解释这一点,但我基本上希望通过谷歌API在地图上显示标记,并在标记上有指向该位置的链接。但是,目前只有当用户允许跟踪他们的位置时,它才起作用 我想做的是,在这两种情况下,基本上都有这些标记,用户允许也不允许跟踪他们的位置,但只会更改链接 因此,如果用户允许跟踪他们的位置,链接将被删除 var reitiohjeet=“”+pos+“/”+osoite 如果用户拒绝跟踪他们的位置,链接将被删除 var reitiohjeet2=“”+osoite 我尝试创建替代函数,该函数将在if(navigator.geolocation)的else子句中运行,但这似乎没有任何作用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
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中,这将无法按预期工作,请参阅: