var googleMap;
var myLatitude, myLongitude;
var scriptTag=$('<script src="https://maps.googleapis.com/maps/api/js?key=myAPIKEY(I don\'t want to show it)&callback=myMap"></script>');
(function($){
if(navigator.geolocation){
navigator.geolocation.getCurrentPosition(function(position){
myLatitude = position.coords.latitude;
myLongitude = position.coords.longitude;
});
}else{
$('section#Map').html('Your browser doesn\'t support geolocation');
}$('body').append(scriptTag);
}(jQuery));
function myMap(){
console.log(myLatitude);
var googleMap = {
center: new google.maps.LatLng(myLatitude,myLongitude),
zoom:8
}
var map = new google.maps.Map(document.getElementById('Map'),googleMap);
}
我正在使用此代码获取当前的纬度和经度并显示当前的
谷歌地图api的位置。
我使用alert和console.log测试了我的代码,并看到了函数myMap触发器
在geolocation.getCurrentPosition之前(也许是因为brwoser等到用户提供反馈。我不确定)
我得到纬度,经度未定义。我试图移动导航器代码
在myMap函数中但没有用。我应该怎么做?
答案 0 :(得分:1)
我解决了! 发布问题后,我发现getCurrentPosition是异步运行的。
我刚创建了将脚本标签添加到正文中的功能
作为回调
/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$|^(\/?([a-zA-Z0-9_\.\-]+)?)+$/