【发布时间】:2014-05-06 09:11:56
【问题描述】:
我不确定如何正确解释这一点,但我基本上想通过 Google API 在地图上显示标记,并在其上提供指向该位置的路线的链接。但是,目前它仅在用户允许跟踪其位置时才有效。
我想要做的是基本上在两种情况下都有这些标记,用户允许和不允许跟踪他们的位置,但只会更改链接。
因此,如果用户允许跟踪他们的位置,则链接将是
var reittiohjeet = "https://www.google.fi/maps/dir/"+pos+"/"+osoite;
如果用户拒绝跟踪他们的位置,链接将是
var reittiohjeet2 = "https://www.google.fi/maps/dir/current+location/"+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));
}
}
【问题讨论】:
标签: javascript google-maps google-maps-api-3 google-api