我正在使用面向用户界面的英特尔App Framework和Cordova构建混合移动应用程序,以访问本机设备功能。
作为开发的一部分,我需要获取用户的位置(城市和国家/地区)并在文本框中显示。
通过使用下面的代码,我可以获得纬度和经度并将其显示在两个不同的文本框中(分别具有ID纬度和经度)。如何将纬度和经度转换为城市和乡村。
function Geolocation() {
var onSuccess = function(position) {
document.getElementById('latitude').value = position.coords.latitude;
document.getElementById('longitude').value = position.coords.longitude;
};
var onFail = function() {
navigator.notification.alert('Cannot get the location');
};
navigator.geolocation.getCurrentPosition(onSuccess, onFail, {maximumAge:0, timeout:5000, enableHighAccuracy: true});
}
注意 - 除了Cordova的地理位置之外,我不会使用任何其他插件来处理我的应用中的位置服务。这是一个混合应用程序,但目前我正在开发应用程序的Android版本。
答案 0 :(得分:9)
这被称为反向地理编码有很多服务要做 - 例如。谷歌地图,OpenStreetMaps等等。
我喜欢OpenStreetMaps,因为它非常容易非常。只是一个JSONP回调:
因此,您只需向此URL发出Ajax请求即可获得所需的值。例如:
function titleCase(str) {
var newstr = str.split(" ");
for(i=0;i<newstr.length;i++){
if(newstr[i] == "") continue;
var copy = newstr[i].substring(1).toLowerCase();
newstr[i] = newstr[i][0].toUpperCase() + copy;
}
newstr = newstr.join(" ");
return newstr;
}