获取当前纬度,经度并使用Google地图API

时间:2018-01-09 21:12:17

标签: javascript jquery google-maps geolocation

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函数中但没有用。我应该怎么做?

1 个答案:

答案 0 :(得分:1)

我解决了! 发布问题后,我发现getCurrentPosition是异步运行的。

我刚创建了将脚本标签添加到正文中的功能

作为回调

/^(ftp|http|https):\/\/(\w+:{0,1}\w*@)?(\S+)(:[0-9]+)?(\/|\/([\w#!:.?+=&%@!\-\/]))?$|^(\/?([a-zA-Z0-9_\.\-]+)?)+$/