Javascript 无法在 HTML 5 地理位置中正常工作



所以我有一些代码似乎不起作用。 这几乎是页面的顶部。 上面只是一些其他声明

window.lat = 42.688;
window.lng = -75.980;
$(function () {
    if (Modernizr.geolocation) {
        alert('ayoson');
        navigator.geolocation.getCurrentPosition(function (position) {
            window.lat = position.coords.latitude;
            window.lng = position.coords.longitude;
        })
    }
    // Build map
    var mapOptions = {
        center: new google.maps.LatLng(window.lat, window.lng),
        zoom: 5,
        mapTypeId: google.maps.MapTypeId.ROADMAP
    };

只是以我设置的默认值结束,即使当我在 Modernizr.geolocation 中放置警报时它会触发。此外,如果我将警报放在var mapOptions上方(如alert(window.lng);),则第一个警报不再触发。

提前谢谢。

navigator.geolocation.getCurrentPosition 的回调在分配var mapOptions后的某个时间异步执行。 navigator.geolocation.getCurrentPosition(可能)需要用户的反馈,则回调仅在之后执行。同时,其余代码将继续运行。

由于如果用户忽略回调,则根本不保证会运行回调,因此最佳策略是使用默认位置构建地图,然后在成功对用户进行地理定位后,从navigator.geolocation.getCurrentPosition回调更新地图位置。

最新更新