当前位置:首页 » 《关于电脑》 » 正文

前端h5获取经纬度定位城市

17 人参与  2024年04月19日 10:52  分类 : 《关于电脑》  评论

点击全文阅读


最近遇到的问题: 项目用的是react +antd框架 做的h5页面 需要定位到当前城市

通过多方查阅发现了h5自带的获取经纬度的方法

//判断是否支持 获取本地位置 if (navigator.geolocation) {   var n = navigator.geolocation.getCurrentPosition(function(res){       console.log(res); // 需要的坐标地址就在res中   });} else {    alert('该浏览器不支持定位');}

这段代码也尝试过  但是本地编译运行可以拿到经纬度 而上线以后就拿不到了(具体原因也没去找了 接着找其他办法)

偶然听到同事说用ip定位 结果就看到了获取当前ip的方法 发现里面竟然返回了经纬度 于是我也就不用ip定位了 直接用这个(http://ip-api.com/json)返回的数据里带的经纬度 最后再通过高德地图的逆地理代码解析(通过经纬度获取城市)  最终实现了需求

来段代码:

  const getGeo = () => {    fetch("http://ip-api.com/json")      .then((response) => response.json())      .then(async (data) => {        console.log("data===", data);        let resp = await fetch(          `https://restapi.amap.com/v3/geocode/regeo?location=${data?.lon},${data?.lat}&key={你的高德地图key}&radius=&poitype=&extensions=all&batch=false&roadlevel=`        )          .then((re) => re.json())          .then((d) => {            if (d?.status == "1") {              console.log("d0-----", d);            }          });      })      .catch((error) => {        console.error("Error:", error);      });  };  useEffect(() => {    getGeo();  }, []);

最后再上效果图

虽说看起来有点麻烦 但是需求实现了就是好的哈哈哈哈哈

最后大佬们有更简单的方法欢迎一起交流!!!!


点击全文阅读


本文链接:http://zhangshiyu.com/post/97460.html

<< 上一篇 下一篇 >>

  • 评论(0)
  • 赞助本站

◎欢迎参与讨论,请在这里发表您的看法、交流您的观点。

关于我们 | 我要投稿 | 免责申明

Copyright © 2020-2022 ZhangShiYu.com Rights Reserved.豫ICP备2022013469号-1