aspnet网站开发实例,资阳网站推广,极速网站推广专家,网站自适应屏幕在JavaScript中#xff0c;获取经纬度通常需要使用定位服务#xff0c;比如HTML5的Geolocation API。然而拿到坐标后#xff0c;将经纬度转换为城市信息#xff0c;则需要使用逆地理编码服务接口#xff0c;比如百度或者高德的 API, 但是他们收费都很高, 我们可以使用一些…在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 langzh-CN styleheight: 100%headmeta charsetutf-8/headbody styleheight: 100%; margin: 0div idcontainer styleheight: 100%/divscript srchttps://cdn.bootcdn.net/ajax/libs/jquery/3.6.1/jquery.min.js/scriptscript typetext/javascript$.get(http://apia.yikeapi.com/geocode/?appid43656176appsecretI42og6Lmoutputjsonlocation116.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}}
}另外也请注意上述操作需要用户允许浏览器访问地理位置信息这在某些浏览器设置或用户隐私设置中可能被禁用或受限。