JS获取经纬度并根据经纬度得到城市信息简单示例
前言
在JavaScript中,获取经纬度通常需要使用定位服务,比如HTML5的Geolocation API。然而拿到坐标后,将经纬度转换为城市信息,则需要使用逆地理编码服务接口,比如百度或者高德的 API, 但是他们收费都很高, 我们可以使用一些便宜的接口, 效果一样的。
以下是一个简单的示例:
一、获取经纬度
首先,你需要使用Geolocation API获取用户的经纬度。这需要用户的许可,所以它是一个异步操作。以下是如何获取经纬度的代码:
navigator.geolocation.getCurrentPosition(function(position) { var lat = position.coords.latitude; var lon = position.coords.longitude; console.log("Latitude: " + lat); console.log("Longitude: " + lon); }, function(error) { console.log("Error occurred. Error code: " + error.code); // error.code 可以是:0, 1,或2 });
二、根据经纬度获取城市信息
然后,你可以使用易客云API将经纬度转换为城市信息。以下是使用此API的示例代码:
<!-- 此示例需要注册api账号 https://yikeapi.com/index/geocode --> <!DOCTYPE html> <html lang="zh-CN" style="height: 100%"> <head> <meta charset="utf-8"> </head> <body style="height: 100%; margin: 0"> <div id="container" style="height: 100%"> </div> <script src="https://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.min.js"> </script> <script type="text/javascript"> $.get('http://apia.yikeapi.com/geocode/?appid=43656176&appsecret=I42og6Lm&output=json&location=116.437039,39.999664', function(res) { console.log(res); var json = JSON.parse(res); if (json.errcode == 0) { console.log('当前所在城市:' + json.regeocode.addressComponent.district); } }); </script> </body> </html>
输出结果
{“errcode”:0,“errmsg”:“success”,“nums”:147,“regeocode”:{“addressComponent”:{“province”:“北京市”,“city”:“北京市”,“district”:“朝阳区”,“adcode”:“110105”}}}
当前所在城市:朝阳区
易客云的逆地理编码接口返回的json结构和百度高德一模一样, 但是只支持区县级, 每日5万次级的仅需要三位数, 比5万便宜多啦🌶, 如果不是街道级定位要求, 那可以用这个
接口返回JSON
{ "errcode":0, "errmsg":"success", "nums":140, "regeocode":{ "addressComponent":{ "province":"北京市", "city":"北京市", "district":"朝阳区", "adcode":"110105" } } }
另外,也请注意,上述操作需要用户允许浏览器访问地理位置信息,这在某些浏览器设置或用户隐私设置中可能被禁用或受限。
总结
到此这篇关于JS获取经纬度并根据经纬度得到城市信息的文章就介绍到这了,更多相关JS获取经纬度内容请搜索脚本之家以前的文章或继续浏览下面的相关文章希望大家以后多多支持脚本之家!
相关文章
js中通过getElementsByName访问name集合对象的方法
下面小编就为大家带来一篇js中通过getElementsByName访问name集合对象的方法。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧2016-10-10js字符串截取函数substr substring slice使用对比
字符串截取函数有substr、substring以及slice等等,下面将为大家介绍下各自的使用,感兴趣的朋友可以了解下2013-11-11理解Javascript_11_constructor实现原理
在理解了'对象模型'后,我们就可以看一下constructor属性是如何实现的.2010-10-10原生js实现复制对象、扩展对象 类似jquery中的extend()方法
jq的extend()方法能很方便的实现扩展对象方法,这里要实现的是:原生js实现复制对象,扩展对象,类似jq中的extend()方法,需要的朋友可以参考下2014-08-08
最新评论