获取之前找到的地理位置地址

Get the previous found geolocation address

我有一个获取用户位置的脚本。问题是加载需要一些时间,有时字符串不会显示在页面中。 由于我是 javascript 的新手,所以我不知道从这里可以做什么。 我现在正在尝试添加一些设置超时的功能,如果我无法加载地理位置,它会显示之前显示的最后一个地理位置(可能保存在浏览器或其他东西中)

<head>
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript">
        function initialize() {
            geocoder = new google.maps.Geocoder();
        }
        var geocoder;
        if (navigator.geolocation) {
            navigator.geolocation.getCurrentPosition(function (position) {
                var lat = position.coords.latitude;
                var lng = position.coords.longitude;
                geocodeLatLng(lat, lng);
            }, function (error) {
                alert("Erro interno.");
            });
        }
        function geocodeLatLng(lat, lng) {
            var latlng = new google.maps.LatLng(lat, lng);
            geocoder.geocode({ 'latLng': latlng }, function (results, status) {
                if (status == google.maps.GeocoderStatus.OK) {
                    console.log(results)
                    if (results[1]) {
                        //var add = results[0].formatted_address;
                        //document.getElementById("address").innerHTML = add;
                        for (var i = 0; i < results[0].address_components.length; i++) {
                            var addr = results[0].address_components[i];
                            if (addr.types[0] == ['locality']) {    // City
                                document.getElementById("locality").innerHTML = addr.long_name;
                            }
                        }
                    } else
                        alert("Sem resultados.");
                } else
                    alert("Geocoder falhou devido ao seguinto erro: " + status);               
            });
        }
    </script>
</head>
<body onload="initialize()">
    <h4 id="locality"></h4>
</body>

<head>
    <script type="text/javascript" src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
    <script type="text/javascript">
        function initialize() {
            geocoder = new google.maps.Geocoder();
            var geocoder;
            if (navigator.geolocation) {
                navigator.geolocation.getCurrentPosition(function (position) {
                    var lat = position.coords.latitude;
                    var lng = position.coords.longitude;
                    geocodeLatLng(lat, lng);
                }, function (error) {
                    alert("Erro interno.");
                });
            }
            function geocodeLatLng(lat, lng) {
                var latlng = new google.maps.LatLng(lat, lng);
                geocoder.geocode({ 'latLng': latlng }, function (results, status) {
                    if (status == google.maps.GeocoderStatus.OK) {
                        console.log(results)
                        if (results[1]) {
                            //var add = results[0].formatted_address;
                            //document.getElementById("address").innerText = add;
                            for (var i = 0; i < results[0].address_components.length; i++) {
                                var addr = results[0].address_components[i];
                                if (addr.types[0] == ['locality']) {    // City
                                    document.getElementById("locality").innerText = addr.long_name;
                                }
                            }
                        } else
                            alert("Sem resultados.");
                    } else
                        alert("Geocoder falhou devido ao seguinto erro: " + status);
                });
            }
        }
    </script>
</head>
<body onload="initialize()">
</body>
<label id="locality"></label>

对代码进行了一些更改,现在可以正常工作了...抱歉,嘿嘿