获取之前找到的地理位置地址
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>
对代码进行了一些更改,现在可以正常工作了...抱歉,嘿嘿
我有一个获取用户位置的脚本。问题是加载需要一些时间,有时字符串不会显示在页面中。 由于我是 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>
对代码进行了一些更改,现在可以正常工作了...抱歉,嘿嘿