我遇到了 GeoLocation API 的问题。基本上,我正在尝试根据用户的位置链接到谷歌地图(非嵌入)。如果无法使用地理位置,则默认仅显示目的地。我遇到的问题是,除非我在代码中放入警报,否则它将始终默认为仅目的地。
这是我的代码:
function findPosition(position)
{
var latitude = position.coords.latitude;
var longitude = position.coords.longitude;
mapURL = "https://maps.google.co.uk/maps?saddr=" + latitude + "," + longitude + "&daddr=50.795251,-1.107136&sensor=TRUE";
alert("1 " + mapURL); // Alert shows the URL correctly
}
if(navigator.geolocation)
{
navigator.geolocation.getCurrentPosition(findPosition);
}
alert("2 " + mapURL); // Shows empty string as if findPosition() has not been called???
alert("3 " + mapURL); // Shows mapURL correctly
if (mapURL == "")
{
// Set the default URL with only the destination
mapURL = "https://maps.google.co.uk/maps?q=50.795251,-1.107136";
}
var link = "<a href=\"" + mapURL + "\" style=\"text-decoration:none;color:#000;\" target=\"_blank\">";
document.write(link);
//-->
</script>
警报旁边的注释是为了演示代码如何与它们一起工作,但是如果警报被删除,它总是会设置目标唯一的默认 URL。
我不明白为什么警报 1 显示正确的 URL 而 2 却什么也没显示,尽管它应该在警报 1 之后处理?
任何帮助,将不胜感激。