Cur*_*urt 30 javascript html5 geolocation
我熟悉HTML5地理位置,用于返回用户位置的粗略坐标.
但是,如何返回其坐标所在国家/地区的名称?
hip*_*ail 36
如果你只是想要这个国家,这里使用的方法ws.geonames.org比使用谷歌要简单得多:
if (navigator.geolocation) {
navigator.geolocation.getCurrentPosition(function(position) {
$.getJSON('http://ws.geonames.org/countryCode', {
lat: position.coords.latitude,
lng: position.coords.longitude,
type: 'JSON'
}, function(result) {
alert(result.countryName);
});
});
}?
Run Code Online (Sandbox Code Playgroud)
通常我会说使用谷歌服务意味着更高的可靠性,但最近有很多谷歌服务退役,看看其他一些解决方案可能是个好主意.
顺便说一句,我使用我能找到的所有免费地理编码服务做了一些实验.一旦其中一个人找到可接受的结果,它就会返回国家和服务的名称.
随意通过JSFiddle玩它:通过多个地理定位webapis延迟查找国家代码
sla*_*dau 29
var geocoder = new google.maps.Geocoder();
geocoder.geocode({'latLng': <YOURLATLNGRESPONSEFROMGEO>}, function(results, status) {
if (status == google.maps.GeocoderStatus.OK) {
if (results[0]) {
var loc = getCountry(results);
}
}
});
function getCountry(results)
{
for (var i = 0; i < results[0].address_components.length; i++)
{
var shortname = results[0].address_components[i].short_name;
var longname = results[0].address_components[i].long_name;
var type = results[0].address_components[i].types;
if (type.indexOf("country") != -1)
{
if (!isNullOrWhitespace(shortname))
{
return shortname;
}
else
{
return longname;
}
}
}
}
function isNullOrWhitespace(text) {
if (text == null) {
return true;
}
return text.replace(/\s/gi, '').length < 1;
}
Run Code Online (Sandbox Code Playgroud)
这是我用的:)
| 归档时间: |
|
| 查看次数: |
39951 次 |
| 最近记录: |