IT数码 购物 网址 头条 软件 日历 阅读 图书馆
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
图片批量下载器
↓批量下载图片,美女图库↓
图片自动播放器
↓图片自动播放器↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁
 
   -> JavaScript知识库 -> vue使用高德地图-进行显示地图和查询天气 -> 正文阅读

[JavaScript知识库]vue使用高德地图-进行显示地图和查询天气

高德地图显示,实现了天气查询效果(Vue)

在index.html中 引入高德地图的css和js

 <!-- 高德地图js插件-->
  <script type="text/javascript">
    window._AMapSecurityConfig = {
      securityJsCode: '安全密钥jscode',
    }
  </script>
  <script type="text/javascript"
    src="https://webapi.amap.com/maps?v=1.4.15&key=key值&plugin=AMap.DistrictSearch,AMap.Geocoder,AMap.DistrictLayer,AMap.AutoComplete,AMap.PlaceSearch">

    </script>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-ELIJbesS-1662877005374)(C:\Users\飞\AppData\Roaming\Typora\typora-user-images\image-20220911140027464.png)]

vue

<template>
  <div id="ceshi">
    <div id="cc"></div>
    <div class="info" style="position: absolute;left: 1000px;top: 110px; ">
      <h4>未来四天预报天气</h4>
      <hr>
      <p id='forecast'></p>
    </div>

    <div class="input-card" style="position: absolute;left: 250px;top: 110px; height: 200px;">
      <h4>下属行政区查询</h4>
      <div class="input-item">
        <div class="input-item-prepend"><span class="input-item-text">省市区</span></div>
        <select id="province" style="width:100px" @change='loadProv()'></select>
      </div>
      <div class="input-item">
        <div class="input-item-prepend"><span class="input-item-text">地级市</span></div>
        <select id='city' style="width:100px" @change='loadCity() '></select>
      </div>
    </div>
    <div id="container"></div>

  </div>
</template>
  
  <script>
import AMap from "AMap";
export default {
  name: "shouye",

  data() {
    return {
      district: "",
      pp: "",
    };
  },
  methods: {
    loadProv() {
      var province = $("#province").val();
      //查询中国下的市级名称
      this.district.search(province, function (status, result) {
        var city = result.districtList[0].districtList;
        console.log(city);
        var html = "<option value='0'>----请选择市----</option>";
        for (var i = 0; i < city.length; i++) {
          html +=
            "<option value='" +
            city[i].name +
            "'>" +
            city[i].name +
            "</option>";
        }
        $("#city").html(html);
      });
    },
    loadCity() {
      var city = $("#city").val();
      var self = this;
      //查询中国下的市级名称
      this.district.search(city, function (status, result) {
        self.pp = result.districtList[0].center;
      });

      this.loadData(city);
    },
    loadData(address) {
      var self = this;
      //这里需要重新渲染
      var myMap = new AMap.Map("cc", {
        resizeEnable: true,
        center: self.pp,
        zoom: 15,
      });

      AMap.plugin("AMap.Weather", function () {
        var weather = new AMap.Weather();
        //查询实时天气信息, 查询的城市到行政级别的城市,如朝阳区、杭州市
        weather.getLive(address, function (err, data) {
          if (!err) {
            var str = [];
            str.push("<h4 >实时天气" + "</h4><hr>");
            str.push("<p>城市/区:" + data.city + "</p>");
            str.push("<p>天气:" + data.weather + "</p>");
            str.push("<p>温度:" + data.temperature + "℃</p>");
            str.push("<p>风向:" + data.windDirection + "</p>");
            str.push("<p>风力:" + data.windPower + " 级</p>");
            str.push("<p>空气湿度:" + data.humidity + "</p>");
            str.push("<p>发布时间:" + data.reportTime + "</p>");
            var marker = new AMap.Marker({
              map: myMap,
              position: self.pp,
            });
            var infoWin = new AMap.InfoWindow({
              content:
                '<div class="info" style="position:inherit;margin-bottom:0;">' +
                str.join("") +
                '</div><div class="sharp"></div>',
              isCustom: true,
              offset: new AMap.Pixel(0, -37),
            });
            infoWin.open(myMap, marker.getPosition());
            marker.on("mouseover", function () {
              infoWin.open(myMap, marker.getPosition());
            });
          }
        });

        weather.getForecast(address, function (err, data) {
          if (err) {
            return;
          }
          var str = [];
          for (var i = 0, dayWeather; i < data.forecasts.length; i++) {
            dayWeather = data.forecasts[i];
            str.push(
              dayWeather.date +
                ' <span class="weather">' +
                dayWeather.dayWeather +
                "</span> " +
                dayWeather.nightTemp +
                "~" +
                dayWeather.dayTemp +
                "℃"
            );
          }
          document.getElementById("forecast").innerHTML = str.join("<br>");
        });
      });
    },
    initMap() {
      new AMap.Map("container", {
        //设置地图容器id
        viewMode: "3D", //是否为3D地图模式
        zoom: 5, //初始化地图级别
        center: [105.602725, 37.076636], // //初始化地图中心点位置
      });
    },
  },
  mounted() {
    //初始化地图-----一定要初始化否则报错
    var map = new AMap.Map("cc");
    console.log(map);

    var self = this;
    //加载地图查询插件
    console.log(new AMap.DistrictSearch());
    AMap.plugin("AMap.DistrictSearch", function () {
      // 创建行政区查询对象
      self.district = new AMap.DistrictSearch();
      //查询中国下的省级名称
      self.district.search("中国", function (status, result) {
        var prov = result.districtList[0].districtList;
        console.log(prov);
        var html = "<option value='0'>----请选择省份----</option>";
        for (var i = 0; i < prov.length; i++) {
          html +=
            "<option value='" +
            prov[i].name +
            "'>" +
            prov[i].name +
            "</option>";
        }
        $("#province").html(html);
      });
      self.initMap();
    });
  },
};
</script>
  <style>
html,
body {
  height: 100%;
  margin: 0px;
  /*去掉默认边距*/
}

#cc {
  width: 100%;
  height: 100%;
}
#ceshi {
  width: 100%;
  height: 100%;
}

.weather {
  width: 5rem;
  display: inline-block;
  padding-left: 0.5rem;
}

.sharp {
  height: 1rem;
  width: 1rem;
  background-color: white;
  transform: rotateZ(45deg);
  box-shadow: 2px 2px 3px rgba(114, 124, 245, 0.5);
  position: inherit;
  margin-left: 10.5rem;
  margin-top: -6px;
}

#container {
  width: 80%;
  height: 400px;
  margin: 100px auto;
  margin-top: 300px;
  border: 2px solid red;
}
</style>

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-42sl8QUX-1662877005376)(C:\Users\飞\AppData\Roaming\Typora\typora-user-images\image-20220911140257052.png)]

高德地图 使用:https://lbs.amap.com/api/javascript-api/guide/abc/prepare

插件列表

来源入高德地图开发平台

类名类功能说明
AMap.CustomLayer自定义地图图层,在JSAPI提供的标准类型均无法满足需求的情况下,允许开发者通过canvas、svg等绘图手段绘制自己想要的图层及效果
AMap.ElasticMarker灵活点标记,可以随着地图级别改变样式和大小的 Marker
AMap.ToolBar工具条,控制地图的缩放、平移等
AMap.Scale比例尺,显示当前地图中心的比例尺
AMap.OverView鹰眼,显示缩略图
AMap.MapType图层切换,用于几个常用图层切换显示
AMap.Geolocation定位,提供了获取用户当前准确位置、所在城市的方法
AMap.AdvancedInfoWindow高级信息窗体,整合了周边搜索、路线规划功能
AMap.Autocomplete输入提示,提供了根据关键字获得提示信息的功能
AMap.PlaceSearch地点搜索服务,提供了关键字搜索、周边搜索、范围内搜索等功能
AMap.DistrictSearch行政区查询服务,提供了根据名称关键字、citycode、adcode 来查询行政区信息的功能
AMap.LineSearch公交路线服务,提供公交路线相关信息查询服务
AMap.StationSearch公交站点查询服务,提供途经公交线路、站点位置等信息
AMap.Driving驾车路线规划服务,提供按照起、终点进行驾车路线的功能
AMap.TruckDriving货车路线规划
AMap.Transfer公交路线规划服务,提供按照起、终点进行公交路线的功能
AMap.Walking步行路线规划服务,提供按照起、终点进行步行路线的功能
AMap.Riding骑行路线规划服务,提供按照起、终点进行骑行路线的功能
AMap.DragRoute拖拽导航插件,可拖拽起终点、途经点重新进行路线规划
AMap.ArrivalRange公交到达圈,根据起点坐标,时长计算公交出行是否可达及可达范围
AMap.Geocoder地理编码与逆地理编码服务,提供地址与坐标间的相互转换
AMap.CitySearch城市获取服务,获取用户所在城市信息或根据给定IP参数查询城市信息
AMap.IndoorMap室内地图,用于在地图中显示室内地图
AMap.MouseTool鼠标工具插件
AMap.CircleEditor圆编辑插件
AMap.PolyEditor折线、多边形编辑插件
AMap.MarkerClusterer点聚合插件
AMap.RangingTool测距插件,可以用距离或面积测量
AMap.CloudDataLayer云图图层,用于展示云图信息
AMap.CloudDataSearch云图搜索服务,根据关键字搜索云图点信息
AMap.Weather天气预报插件,用于获取未来的天气信息
AMap.RoadInfoSearch道路信息查询,已停止数据更新,反馈信息仅供参考
AMap.Hotspot热点插件,地图热点已默认开启,不用手动添加,由Map的 isHotspot 属性替代
AMap.Heatmap热力图插件
AMap.PlaceSearchLayer服务已下线,请勿使用
Map3D使用 ObjectLayer 等三维图形的时候需要引用

问题解决:

  1. 未加安全秘钥

在这里插入图片描述

[外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-8Eszz5yY-1662877099664)(C:\Users\飞\AppData\Roaming\Typora\typora-user-images\image-20220911140408148.png)]

解决方法:

 <!-- 高德地图js插件-->
  <script type="text/javascript">
    window._AMapSecurityConfig = {
      securityJsCode: '安全密钥jscode',
    }
  </script>

必须在key值前面写

  1. TypeError: __WEBPACK_IMPORTED_MODULE_0_AMap___default.a.DistrictSearch is not a constructor
    [外链图片转存失败,源站可能有防盗链机制,建议将图片保存下来直接上传(img-9bUDkV5G-1662877005380)(C:\Users\飞\AppData\Roaming\Typora\typora-user-images\image-20220911140637439.png)]

? 解决方法: 没有加载插件,在key值后面加入

 <script type="text/javascript"
    src="https://webapi.amap.com/maps?v=1.4.15&key=key值&plugin=AMap.DistrictSearch,AMap.Geocoder,AMap.DistrictLayer,AMap.AutoComplete,AMap.PlaceSearch">
</script>
  JavaScript知识库 最新文章
ES6的相关知识点
react 函数式组件 & react其他一些总结
Vue基础超详细
前端JS也可以连点成线(Vue中运用 AntVG6)
Vue事件处理的基本使用
Vue后台项目的记录 (一)
前后端分离vue跨域,devServer配置proxy代理
TypeScript
初识vuex
vue项目安装包指令收集
上一篇文章      下一篇文章      查看所有文章
加:2022-09-13 11:05:12  更:2022-09-13 11:05:46 
 
开发: C++知识库 Java知识库 JavaScript Python PHP知识库 人工智能 区块链 大数据 移动开发 嵌入式 开发工具 数据结构与算法 开发测试 游戏开发 网络协议 系统运维
教程: HTML教程 CSS教程 JavaScript教程 Go语言教程 JQuery教程 VUE教程 VUE3教程 Bootstrap教程 SQL数据库教程 C语言教程 C++教程 Java教程 Python教程 Python3教程 C#教程
数码: 电脑 笔记本 显卡 显示器 固态硬盘 硬盘 耳机 手机 iphone vivo oppo 小米 华为 单反 装机 图拉丁

360图书馆 购物 三丰科技 阅读网 日历 万年历 2024年11日历 -2024/11/23 10:57:18-

图片自动播放器
↓图片自动播放器↓
TxT小说阅读器
↓语音阅读,小说下载,古典文学↓
一键清除垃圾
↓轻轻一点,清除系统垃圾↓
图片批量下载器
↓批量下载图片,美女图库↓
  网站联系: qq:121756557 email:121756557@qq.com  IT数码