原生JavaScript使用百度地图API获取当前城市气温的实例

首先,我们需要使用百度地图的API来获取用户的位置信息。在代码中,我们创建了一个BMap.Geolocation对象,并调用getCurrentPosition方法来获取用户的经纬度信息。这样我们就可以得到用户所在地区的具体位置。

接下来,我们使用逆地理编码API来获取当前城市的详细地址信息。通过将用户的经纬度信息传递给BMap.Geocoder对象的getLocation方法,我们可以获取当前城市的详细地址信息。这样,我们就能够确定用户所在的城市。

然后,我们利用fetch方法发送POST请求到中国气象局的接口,请求当前城市的气温信息。我们传递用户的经纬度信息和一些其他参数,以获取当前城市的实时气温数据。获取到返回的数据后,我们将气温信息渲染到页面上,让用户可以直观地了解当前城市的气温情况。

<!DOCTYPE html>
<html>
  <head>
    <meta charset="utf-8">
    <meta http-equiv="X-UA-Compatible" content="IE=edge,chrome=1">
    <meta name="renderer" content="webkit">
    <meta name="viewport" content="width=device-width, initial-scale=1, maximum-scale=1, user-scalable=no">
    <link rel="icon" href="">
    <title></title>
  </head>
  <body>
   <p id="temperature"></p>
    <script type="text/javascript" src="https://api.map.baidu.com/api?v=2.0&ak=YlKTupxQdbmBT3dGUNVhdSFrDw89CGWc"></script>
    <script>
     var geolocation = new BMap.Geolocation();
     geolocation.getCurrentPosition(function(res){
		 console.log(res);
         var lat = res.latitude; // 纬度
         var lng = res.longitude; // 经度
     
         // 使用百度地图的逆地理编码API获取当前城市
         var myGeo = new BMap.Geocoder();
         myGeo.getLocation(new BMap.Point(lng, lat), function(result){
           // 在这里可以获取到当前城市的详细地址信息
           console.log(result.addressComponents.city);
     
           // 发送请求获取当前城市的气温
           fetch('http://data.cma.cn/kbweb/home/live', {
             method: 'POST',
             headers: {
               'content-type': 'application/json'
             },
             body: JSON.stringify({
               "lat": lat,
               "lon": lng,
               "type": "0"
             }),
           })
           .then(response => response.json())
           .then(data0 => {
             console.log(data0);
             var ds = data0.result.DS[0];
             var tem = ds.TEM;
     
             if (tem == '9999') {
               tem = '--';
             }
     
             // 将气温渲染到页面上
             document.getElementById('temperature').textContent = tem + '°C';
           })
           .catch(err => console.log('Request Failed', err));
         });
     });
    </script>
  </body>
</html>
相关推荐
并不会1 小时前
常见 CSS 选择器用法
前端·css·学习·html·前端开发·css选择器
悦涵仙子1 小时前
CSS中的变量应用——:root,Sass变量,JavaScript中使用Sass变量
javascript·css·sass
衣乌安、1 小时前
【CSS】居中样式
前端·css·css3
兔老大的胡萝卜1 小时前
ppk谈JavaScript,悟透JavaScript,精通CSS高级Web,JavaScript DOM编程艺术,高性能JavaScript pdf
前端·javascript
低代码布道师1 小时前
CSS的三个重点
前端·css
耶啵奶膘2 小时前
uniapp-是否删除
linux·前端·uni-app
王哈哈^_^4 小时前
【数据集】【YOLO】【目标检测】交通事故识别数据集 8939 张,YOLO道路事故目标检测实战训练教程!
前端·人工智能·深度学习·yolo·目标检测·计算机视觉·pyqt
cs_dn_Jie4 小时前
钉钉 H5 微应用 手机端调试
前端·javascript·vue.js·vue·钉钉
开心工作室_kaic5 小时前
ssm068海鲜自助餐厅系统+vue(论文+源码)_kaic
前端·javascript·vue.js
有梦想的刺儿5 小时前
webWorker基本用法
前端·javascript·vue.js