gpt4 book ai didi

javascript - 我如何使用 Javascript 将 Lat 和 Long 转换为英国邮政编码

转载 作者:行者123 更新时间:2023-11-28 04:12:45 25 4
gpt4 key购买 nike

我正在尝试为我正在进行的项目使用 HTML5 地理定位。

通过地理定位获取用户所在位置的纬度和经度似乎非常简单。

问题是,我需要将其转换为英国邮政编码,并且正在努力学习 javascript。

我的代码是:

if (navigator.geolocation) {
var timeoutVal = 10 * 1000 * 1000;
navigator.geolocation.getCurrentPosition(
displayPosition,
displayError,
{ enableHighAccuracy: true, timeout: timeoutVal, maximumAge: 0 }
);
}
else {
alert("Geolocation is not supported by this browser");
}

function displayPosition(position) {
alert("Latitude: " + position.coords.latitude + ", Longitude: " + position.coords.longitude);
var Lat = position.coords.latitude;
var Long = position.coords.longitude;
var inputField = document.getElementById("addressInput");
inputField.value = Lat + Long;
}

function displayError(error) {
var errors = {
1: 'Permission denied',
2: 'Position unavailable',
3: 'Request timeout'
};
alert("Error: " + errors[error.code]);
}

我找到了这个网站,它做的正是我想要实现的事情: http://www.latlong.net/Show-Latitude-Longitude.html

谁能给我一些关于如何让它工作的提示?

任何建议都很好

提前致谢

=========================修改后的代码:

        //var long = '50.**************', lat = '0.**************'
var Lat='';
var Long='';
var coordsObj = {coords:{latitude:Lat, longitude:Long}};

if (navigator.geolocation) {
var timeoutVal = 10 * 1000 * 1000;
navigator.geolocation.getCurrentPosition(
displayPosition,
displayError,
{ enableHighAccuracy: true, timeout: timeoutVal, maximumAge: 0 }
);
}
else {
alert("Geolocation is not supported by this browser");
}

function displayPosition(position) {
console.log(position, position.coords)
console.log("Latitude: " + position.coords.latitude + ", Longitude: " + position.coords.longitude);
var Lat = position.coords.latitude;
alert(Lat);
var Long = position.coords.longitude;
alert(Long);
var inputField = document.getElementById("addressInput");
inputField.value = Lat + Long;
return [Lat, Long];
}

function displayError(error) {
var errors = {
1: 'Permission denied',
2: 'Position unavailable',
3: 'Request timeout'
};
alert("Error: " + errors[error.code]);
}

function reverseGeoLookup(lon, lat) {
var req = new XMLHttpRequest()
req.open("GET", "http://maps.googleapis.com/maps/api/geocode/json?latlng="+lat+","+lon+"&sensor=true", true)
req.onreadystatechange = function() {
if(req.readyState == 4) {
var result = JSON.parse(req.response).results
for(var i = 0, length = result.length; i < length; i++) {
for(var j = 0; j < result[i].address_components.length; j++) {
var component = result[i].address_components[j]
if(~component.types.indexOf("postal_code")) {
var out = document.getElementById('output')
out.innerHTML += component.long_name
}
}
}
}
}
req.send()
}

var latlng = displayPosition(coordsObj)
reverseGeoLookup.apply(this, latlng)

最佳答案

现在有一个免费的英国政府替代此处列出的其他选项。转到 http://postcodes.io/查看 API 和示例的详细信息。它还支持反向查找,这正是您所追求的

关于javascript - 我如何使用 Javascript 将 Lat 和 Long 转换为英国邮政编码,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16725239/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com