微信小程序|使用小程序制作一个核酸检测点查询工具

出门在外,没有核酸证明寸步难行,此文将教你如何通过小程序制作一个工具帮你在人生地不熟的情况如何迅速找到核酸检测点,实现核酸点查询、地图导航、拨号等功能。

小程序

创建小程序

  1. 访问微信公众平台,点击账号注册。

在这里插入图片描述

  1. 选择小程序,并在表单填写所需的各项信息进行注册。

在这里插入图片描述
在这里插入图片描述

  1. 在开发管理选择开发设置,将AppID及AppSecret复制出来进行存储。

在这里插入图片描述

  1. 下载安装微信web开发者工具并创建一个新的项目,填入上图所复制的AppId。

在这里插入图片描述
在这里插入图片描述

申请腾讯地图用户key

  1. 访问腾讯位置服务,申请腾讯地图用户Key,因为在后面我们需要将用户的经纬度解析成地址,所以这个步骤是必不可少的

在这里插入图片描述

  1. 点击右上角的登陆,选择注册或绑定现有账号;绑定完毕后选择创建ApiKey

在这里插入图片描述
在这里插入图片描述

  1. 填写所需的各项表单信息,点击确定将所创建的API Key保存下来。

在这里插入图片描述

实现小程序界面

  1. 在页面上大致要实现选择省市区功能,然后通过点击查询按钮将核酸点数据进行渲染,实现导航及拨号等细节功能,设计如下。

在这里插入图片描述

  1. 在pages文件夹下面创建一个文件夹并新建对应的page文件。

在这里插入图片描述

  1. 在index.js中引入utils文件夹下面的引入腾讯地图SDK核心类。

在这里插入图片描述

const util = require("../../utils/util.js");
const app = getApp();
// 引入腾讯地图SDK核心类
var QQMapWX = require('../../utils/map/qqmap-wx-jssdk.js');
var qqmapsdk;
  1. 在JS中的onLoad函数中将其进行实例化,复制刚才在腾讯地图所申请的用户key。
    qqmapsdk = new QQMapWX({
    
    
      key: '刚刚所申请的key填到这里'
    });
  1. 实现省市区下拉框三级联动,这里需要用到的是picker组件,mode熟悉填写region。
  <picker class="picker" mode="region" bindchange="bindPickerChange" value="{
    
    {region}}" custom-item="{
    
    {customItem}}">
    <view class="address little">
      <text>请选择: </text>
      <text> {
    
    {
    
    provinceName}} {
    
    {
    
    cityName}} {
    
    {
    
    districtName}}</text>
    </view>
  </picker>

在这里插入图片描述

  1. 同时实现该组件的响应函数,看是否能够获取到我们所需要的信息,正确响应如下图,然后根据数组下标取到对应的省市区并将其存储到全局的data中。

在这里插入图片描述

  bindPickerChange: function (e) {
    
    
    let that = this;
    let province = e.detail.value[0];
    let city = e.detail.value[1];
    let district = e.detail.value[2];
   	that .setData({
    
    
	     province : province,
	     city : city,
	     district: e.detail.value
   	});
  },
  1. picker组件在加载时候默认是不会选中的,为了优化用户体验,我们需要在加载的时候获取用户的位置并对其进行赋值,首先需要在app.json文件中增加配置。

在这里插入图片描述

  "permission": {
    
    
    "scope.userLocation": {
    
    
      "desc": "位置信息效果展示"
    }
  },
	"requiredPrivateInfos": [
		"getLocation"
	]
  1. 回到index.js,在onLoad函数中调用wx.getLocation,这个函数是用于获取用户当前经纬度。

在这里插入图片描述

  1. 很显然,经纬度是不能够直接赋值给picker组件的,接下来需要逆解析将其转换为地址,这时候需要用到reverseGeocoder函数了,将上一个函数返回的经纬度作为参数拼接调用,返回的信息中就有我们需要的省市区等详细地址了。

在这里插入图片描述

//获取用户当前经纬度
    wx.getLocation({
    
    
      type: 'wgs84',
      success (data) {
    
    
        // 将用户经纬度转换为地址
        qqmapsdk.reverseGeocoder({
    
    //地址解析
          location: {
    
    
            longitude: data.longitude,
            latitude: data.latitude,
          },
          success: function (resSuc) {
    
    
            let province = resSuc.result.address_component.province;
            let city = resSuc.result.address_component.city;
            let district = resSuc.result.address_component.district;
            that.setData({
    
    
              province: province.substr(0, province.length - 1),
              city: city.substr(0, city.length - 1),
              provinceName:province,
              cityName:city,
              districtName:district
            });
          },
          fail: function (errInfo) {
    
    
          }
        });
      },
      fail: function (errInfo) {
    
    
        console.info(errInfo)
      }
     });

全国省市区数据

  1. 后续的接口请求中需要传递不同的城市code,所以现在现在需要封装一个JS,用于传参使用。在utils文件夹中新建一个js文件,将省份及城市数据存放其中,并进行初始化。

在这里插入图片描述

var cityData = [{
    
    
  "province_id": "1",
  "province": "安徽",
  "citys": [{
    
    
    "city_id": "10001",
    "city": "合肥"
  }, {
    
    
    "city_id": "10002",
    "city": "芜湖"
  }, {
    
    
    "city_id": "10003",
    "city": "蚌埠"
  }, {
    
    
    "city_id": "10004",
    "city": "淮南"
  }, {
    
    
    "city_id": "10005",
    "city": "马鞍山"
  }, {
    
    
    "city_id": "10006",
    "city": "淮北"
  }, {
    
    
    "city_id": "10007",
    "city": "铜陵"
  }, {
    
    
    "city_id": "10008",
    "city": "安庆"
  }, {
    
    
    "city_id": "10009",
    "city": "黄山"
  }, {
    
    
    "city_id": "10010",
    "city": "滁州"
  }, {
    
    
    "city_id": "10011",
    "city": "阜阳"
  }, {
    
    
    "city_id": "10012",
    "city": "宿州"
  }, {
    
    
    "city_id": "10013",
    "city": "六安"
  }, {
    
    
    "city_id": "10014",
    "city": "亳州"
  }, {
    
    
    "city_id": "10015",
    "city": "池州"
  }, {
    
    
    "city_id": "10016",
    "city": "宣城"
  }]
}, {
    
    
  "province_id": "2",
  "province": "北京",
  "citys": [{
    
    
    "city_id": "10017",
    "city": "北京"
  }]
}, {
    
    
  "province_id": "3",
  "province": "重庆",
  "citys": [{
    
    
    "city_id": "10018",
    "city": "重庆"
  }]
}, {
    
    
  "province_id": "4",
  "province": "福建",
  "citys": [{
    
    
    "city_id": "10019",
    "city": "福州"
  }, {
    
    
    "city_id": "10020",
    "city": "厦门"
  }, {
    
    
    "city_id": "10021",
    "city": "莆田"
  }, {
    
    
    "city_id": "10022",
    "city": "三明"
  }, {
    
    
    "city_id": "10023",
    "city": "泉州"
  }, {
    
    
    "city_id": "10024",
    "city": "漳州"
  }, {
    
    
    "city_id": "10025",
    "city": "南平"
  }, {
    
    
    "city_id": "10026",
    "city": "龙岩"
  }, {
    
    
    "city_id": "10027",
    "city": "宁德"
  }]
}, {
    
    
  "province_id": "5",
  "province": "广东",
  "citys": [{
    
    
    "city_id": "10028",
    "city": "广州"
  }, {
    
    
    "city_id": "10029",
    "city": "韶关"
  }, {
    
    
    "city_id": "10030",
    "city": "深圳"
  }, {
    
    
    "city_id": "10031",
    "city": "珠海"
  }, {
    
    
    "city_id": "10032",
    "city": "汕头"
  }, {
    
    
    "city_id": "10033",
    "city": "佛山"
  }, {
    
    
    "city_id": "10034",
    "city": "江门"
  }, {
    
    
    "city_id": "10035",
    "city": "湛江"
  }, {
    
    
    "city_id": "10036",
    "city": "茂名"
  }, {
    
    
    "city_id": "10037",
    "city": "肇庆"
  }, {
    
    
    "city_id": "10038",
    "city": "惠州"
  }, {
    
    
    "city_id": "10039",
    "city": "梅州"
  }, {
    
    
    "city_id": "10040",
    "city": "汕尾"
  }, {
    
    
    "city_id": "10041",
    "city": "河源"
  }, {
    
    
    "city_id": "10042",
    "city": "阳江"
  }, {
    
    
    "city_id": "10043",
    "city": "清远"
  }, {
    
    
    "city_id": "10044",
    "city": "东莞"
  }, {
    
    
    "city_id": "10045",
    "city": "中山"
  }, {
    
    
    "city_id": "10046",
    "city": "潮州"
  }, {
    
    
    "city_id": "10047",
    "city": "揭阳"
  }, {
    
    
    "city_id": "10048",
    "city": "云浮"
  }]
}, {
    
    
  "province_id": "6",
  "province": "甘肃",
  "citys": [{
    
    
    "city_id": "10049",
    "city": "兰州"
  }, {
    
    
    "city_id": "10050",
    "city": "嘉峪关"
  }, {
    
    
    "city_id": "10051",
    "city": "金昌"
  }, {
    
    
    "city_id": "10052",
    "city": "白银"
  }, {
    
    
    "city_id": "10053",
    "city": "天水"
  }, {
    
    
    "city_id": "10054",
    "city": "武威"
  }, {
    
    
    "city_id": "10055",
    "city": "张掖"
  }, {
    
    
    "city_id": "10056",
    "city": "平凉"
  }, {
    
    
    "city_id": "10057",
    "city": "酒泉"
  }, {
    
    
    "city_id": "10058",
    "city": "庆阳"
  }, {
    
    
    "city_id": "10059",
    "city": "定西"
  }, {
    
    
    "city_id": "10060",
    "city": "陇南"
  }, {
    
    
    "city_id": "10061",
    "city": "临夏"
  }, {
    
    
    "city_id": "10062",
    "city": "甘南"
  }]
}, {
    
    
  "province_id": "7",
  "province": "广西",
  "citys": [{
    
    
    "city_id": "10063",
    "city": "南宁"
  }, {
    
    
    "city_id": "10064",
    "city": "柳州"
  }, {
    
    
    "city_id": "10065",
    "city": "桂林"
  }, {
    
    
    "city_id": "10066",
    "city": "梧州"
  }, {
    
    
    "city_id": "10067",
    "city": "北海"
  }, {
    
    
    "city_id": "10068",
    "city": "防城港"
  }, {
    
    
    "city_id": "10069",
    "city": "钦州"
  }, {
    
    
    "city_id": "10070",
    "city": "贵港"
  }, {
    
    
    "city_id": "10071",
    "city": "玉林"
  }, {
    
    
    "city_id": "10072",
    "city": "百色"
  }, {
    
    
    "city_id": "10073",
    "city": "贺州"
  }, {
    
    
    "city_id": "10074",
    "city": "河池"
  }, {
    
    
    "city_id": "10075",
    "city": "来宾"
  }, {
    
    
    "city_id": "10076",
    "city": "崇左"
  }]
}, {
    
    
  "province_id": "8",
  "province": "贵州",
  "citys": [{
    
    
    "city_id": "10077",
    "city": "贵阳"
  }, {
    
    
    "city_id": "10078",
    "city": "六盘水"
  }, {
    
    
    "city_id": "10079",
    "city": "遵义"
  }, {
    
    
    "city_id": "10080",
    "city": "安顺"
  }, {
    
    
    "city_id": "10081",
    "city": "毕节"
  }, {
    
    
    "city_id": "10082",
    "city": "铜仁"
  }, {
    
    
    "city_id": "10083",
    "city": "黔西南"
  }, {
    
    
    "city_id": "10084",
    "city": "黔东南"
  }, {
    
    
    "city_id": "10085",
    "city": "黔南"
  }]
}, {
    
    
  "province_id": "9",
  "province": "河北",
  "citys": [{
    
    
    "city_id": "10086",
    "city": "石家庄"
  }, {
    
    
    "city_id": "10087",
    "city": "唐山"
  }, {
    
    
    "city_id": "10088",
    "city": "秦皇岛"
  }, {
    
    
    "city_id": "10089",
    "city": "邯郸"
  }, {
    
    
    "city_id": "10090",
    "city": "邢台"
  }, {
    
    
    "city_id": "10091",
    "city": "保定"
  }, {
    
    
    "city_id": "10092",
    "city": "张家口"
  }, {
    
    
    "city_id": "10093",
    "city": "承德"
  }, {
    
    
    "city_id": "10094",
    "city": "沧州"
  }, {
    
    
    "city_id": "10095",
    "city": "廊坊"
  }, {
    
    
    "city_id": "10096",
    "city": "衡水"
  }]
}, {
    
    
  "province_id": "10",
  "province": "湖北",
  "citys": [{
    
    
    "city_id": "10097",
    "city": "武汉"
  }, {
    
    
    "city_id": "10098",
    "city": "黄石"
  }, {
    
    
    "city_id": "10099",
    "city": "十堰"
  }, {
    
    
    "city_id": "10100",
    "city": "宜昌"
  }, {
    
    
    "city_id": "10101",
    "city": "襄阳"
  }, {
    
    
    "city_id": "10102",
    "city": "鄂州"
  }, {
    
    
    "city_id": "10103",
    "city": "荆门"
  }, {
    
    
    "city_id": "10104",
    "city": "孝感"
  }, {
    
    
    "city_id": "10105",
    "city": "荆州"
  }, {
    
    
    "city_id": "10106",
    "city": "黄冈"
  }, {
    
    
    "city_id": "10107",
    "city": "咸宁"
  }, {
    
    
    "city_id": "10108",
    "city": "随州"
  }, {
    
    
    "city_id": "10109",
    "city": "恩施"
  }, {
    
    
    "city_id": "10110",
    "city": "仙桃"
  }, {
    
    
    "city_id": "10111",
    "city": "潜江"
  }, {
    
    
    "city_id": "10112",
    "city": "天门"
  }, {
    
    
    "city_id": "10113",
    "city": "神农架"
  }]
}, {
    
    
  "province_id": "11",
  "province": "黑龙江",
  "citys": [{
    
    
    "city_id": "10114",
    "city": "哈尔滨"
  }, {
    
    
    "city_id": "10115",
    "city": "齐齐哈尔"
  }, {
    
    
    "city_id": "10116",
    "city": "鸡西"
  }, {
    
    
    "city_id": "10117",
    "city": "鹤岗"
  }, {
    
    
    "city_id": "10118",
    "city": "双鸭山"
  }, {
    
    
    "city_id": "10119",
    "city": "大庆"
  }, {
    
    
    "city_id": "10120",
    "city": "伊春"
  }, {
    
    
    "city_id": "10121",
    "city": "佳木斯"
  }, {
    
    
    "city_id": "10122",
    "city": "七台河"
  }, {
    
    
    "city_id": "10123",
    "city": "牡丹江"
  }, {
    
    
    "city_id": "10124",
    "city": "黑河"
  }, {
    
    
    "city_id": "10125",
    "city": "绥化"
  }, {
    
    
    "city_id": "10126",
    "city": "大兴安岭"
  }]
}, {
    
    
  "province_id": "12",
  "province": "海南",
  "citys": [{
    
    
    "city_id": "10127",
    "city": "海口"
  }, {
    
    
    "city_id": "10128",
    "city": "三亚"
  }, {
    
    
    "city_id": "10129",
    "city": "三沙"
  }, {
    
    
    "city_id": "10130",
    "city": "儋州"
  }, {
    
    
    "city_id": "10131",
    "city": "五指山"
  }, {
    
    
    "city_id": "10132",
    "city": "琼海"
  }, {
    
    
    "city_id": "10133",
    "city": "文昌"
  }, {
    
    
    "city_id": "10134",
    "city": "万宁"
  }, {
    
    
    "city_id": "10135",
    "city": "东方"
  }, {
    
    
    "city_id": "10136",
    "city": "定安"
  }, {
    
    
    "city_id": "10137",
    "city": "屯昌"
  }, {
    
    
    "city_id": "10138",
    "city": "澄迈"
  }, {
    
    
    "city_id": "10139",
    "city": "临高"
  }, {
    
    
    "city_id": "10140",
    "city": "白沙"
  }, {
    
    
    "city_id": "10141",
    "city": "昌江"
  }, {
    
    
    "city_id": "10142",
    "city": "乐东"
  }, {
    
    
    "city_id": "10143",
    "city": "陵水"
  }, {
    
    
    "city_id": "10144",
    "city": "保亭"
  }, {
    
    
    "city_id": "10145",
    "city": "琼中"
  }]
}, {
    
    
  "province_id": "13",
  "province": "河南",
  "citys": [{
    
    
    "city_id": "10146",
    "city": "郑州"
  }, {
    
    
    "city_id": "10147",
    "city": "开封"
  }, {
    
    
    "city_id": "10148",
    "city": "洛阳"
  }, {
    
    
    "city_id": "10149",
    "city": "平顶山"
  }, {
    
    
    "city_id": "10150",
    "city": "安阳"
  }, {
    
    
    "city_id": "10151",
    "city": "鹤壁"
  }, {
    
    
    "city_id": "10152",
    "city": "新乡"
  }, {
    
    
    "city_id": "10153",
    "city": "焦作"
  }, {
    
    
    "city_id": "10154",
    "city": "濮阳"
  }, {
    
    
    "city_id": "10155",
    "city": "许昌"
  }, {
    
    
    "city_id": "10156",
    "city": "漯河"
  }, {
    
    
    "city_id": "10157",
    "city": "三门峡"
  }, {
    
    
    "city_id": "10158",
    "city": "南阳"
  }, {
    
    
    "city_id": "10159",
    "city": "商丘"
  }, {
    
    
    "city_id": "10160",
    "city": "信阳"
  }, {
    
    
    "city_id": "10161",
    "city": "周口"
  }, {
    
    
    "city_id": "10162",
    "city": "驻马店"
  }, {
    
    
    "city_id": "10163",
    "city": "济源"
  }]
}, {
    
    
  "province_id": "14",
  "province": "湖南",
  "citys": [{
    
    
    "city_id": "10164",
    "city": "长沙"
  }, {
    
    
    "city_id": "10165",
    "city": "株洲"
  }, {
    
    
    "city_id": "10166",
    "city": "湘潭"
  }, {
    
    
    "city_id": "10167",
    "city": "衡阳"
  }, {
    
    
    "city_id": "10168",
    "city": "邵阳"
  }, {
    
    
    "city_id": "10169",
    "city": "岳阳"
  }, {
    
    
    "city_id": "10170",
    "city": "常德"
  }, {
    
    
    "city_id": "10171",
    "city": "张家界"
  }, {
    
    
    "city_id": "10172",
    "city": "益阳"
  }, {
    
    
    "city_id": "10173",
    "city": "郴州"
  }, {
    
    
    "city_id": "10174",
    "city": "永州"
  }, {
    
    
    "city_id": "10175",
    "city": "怀化"
  }, {
    
    
    "city_id": "10176",
    "city": "娄底"
  }, {
    
    
    "city_id": "10177",
    "city": "湘西"
  }]
}, {
    
    
  "province_id": "15",
  "province": "吉林",
  "citys": [{
    
    
    "city_id": "10178",
    "city": "长春"
  }, {
    
    
    "city_id": "10179",
    "city": "吉林"
  }, {
    
    
    "city_id": "10180",
    "city": "四平"
  }, {
    
    
    "city_id": "10181",
    "city": "辽源"
  }, {
    
    
    "city_id": "10182",
    "city": "通化"
  }, {
    
    
    "city_id": "10183",
    "city": "白山"
  }, {
    
    
    "city_id": "10184",
    "city": "松原"
  }, {
    
    
    "city_id": "10185",
    "city": "白城"
  }, {
    
    
    "city_id": "10186",
    "city": "延边"
  }]
}, {
    
    
  "province_id": "16",
  "province": "江苏",
  "citys": [{
    
    
    "city_id": "10187",
    "city": "南京"
  }, {
    
    
    "city_id": "10188",
    "city": "无锡"
  }, {
    
    
    "city_id": "10189",
    "city": "徐州"
  }, {
    
    
    "city_id": "10190",
    "city": "常州"
  }, {
    
    
    "city_id": "10191",
    "city": "苏州"
  }, {
    
    
    "city_id": "10192",
    "city": "南通"
  }, {
    
    
    "city_id": "10193",
    "city": "连云港"
  }, {
    
    
    "city_id": "10194",
    "city": "淮安"
  }, {
    
    
    "city_id": "10195",
    "city": "盐城"
  }, {
    
    
    "city_id": "10196",
    "city": "扬州"
  }, {
    
    
    "city_id": "10197",
    "city": "镇江"
  }, {
    
    
    "city_id": "10198",
    "city": "泰州"
  }, {
    
    
    "city_id": "10199",
    "city": "宿迁"
  }]
}, {
    
    
  "province_id": "17",
  "province": "江西",
  "citys": [{
    
    
    "city_id": "10200",
    "city": "南昌"
  }, {
    
    
    "city_id": "10201",
    "city": "景德镇"
  }, {
    
    
    "city_id": "10202",
    "city": "萍乡"
  }, {
    
    
    "city_id": "10203",
    "city": "九江"
  }, {
    
    
    "city_id": "10204",
    "city": "新余"
  }, {
    
    
    "city_id": "10205",
    "city": "鹰潭"
  }, {
    
    
    "city_id": "10206",
    "city": "赣州"
  }, {
    
    
    "city_id": "10207",
    "city": "吉安"
  }, {
    
    
    "city_id": "10208",
    "city": "宜春"
  }, {
    
    
    "city_id": "10209",
    "city": "抚州"
  }, {
    
    
    "city_id": "10210",
    "city": "上饶"
  }]
}, {
    
    
  "province_id": "18",
  "province": "辽宁",
  "citys": [{
    
    
    "city_id": "10211",
    "city": "沈阳"
  }, {
    
    
    "city_id": "10212",
    "city": "大连"
  }, {
    
    
    "city_id": "10213",
    "city": "鞍山"
  }, {
    
    
    "city_id": "10214",
    "city": "抚顺"
  }, {
    
    
    "city_id": "10215",
    "city": "本溪"
  }, {
    
    
    "city_id": "10216",
    "city": "丹东"
  }, {
    
    
    "city_id": "10217",
    "city": "锦州"
  }, {
    
    
    "city_id": "10218",
    "city": "营口"
  }, {
    
    
    "city_id": "10219",
    "city": "阜新"
  }, {
    
    
    "city_id": "10220",
    "city": "辽阳"
  }, {
    
    
    "city_id": "10221",
    "city": "盘锦"
  }, {
    
    
    "city_id": "10222",
    "city": "铁岭"
  }, {
    
    
    "city_id": "10223",
    "city": "朝阳"
  }, {
    
    
    "city_id": "10224",
    "city": "葫芦岛"
  }]
}, {
    
    
  "province_id": "19",
  "province": "内蒙古",
  "citys": [{
    
    
    "city_id": "10225",
    "city": "呼和浩特"
  }, {
    
    
    "city_id": "10226",
    "city": "包头"
  }, {
    
    
    "city_id": "10227",
    "city": "乌海"
  }, {
    
    
    "city_id": "10228",
    "city": "赤峰"
  }, {
    
    
    "city_id": "10229",
    "city": "通辽"
  }, {
    
    
    "city_id": "10230",
    "city": "鄂尔多斯"
  }, {
    
    
    "city_id": "10231",
    "city": "呼伦贝尔"
  }, {
    
    
    "city_id": "10232",
    "city": "巴彦淖尔"
  }, {
    
    
    "city_id": "10233",
    "city": "乌兰察布"
  }, {
    
    
    "city_id": "10234",
    "city": "兴安"
  }, {
    
    
    "city_id": "10235",
    "city": "锡林郭勒"
  }, {
    
    
    "city_id": "10236",
    "city": "阿拉善"
  }]
}, {
    
    
  "province_id": "20",
  "province": "宁夏",
  "citys": [{
    
    
    "city_id": "10237",
    "city": "银川"
  }, {
    
    
    "city_id": "10238",
    "city": "石嘴山"
  }, {
    
    
    "city_id": "10239",
    "city": "吴忠"
  }, {
    
    
    "city_id": "10240",
    "city": "固原"
  }, {
    
    
    "city_id": "10241",
    "city": "中卫"
  }]
}, {
    
    
  "province_id": "21",
  "province": "青海",
  "citys": [{
    
    
    "city_id": "10242",
    "city": "西宁"
  }, {
    
    
    "city_id": "10243",
    "city": "海东"
  }, {
    
    
    "city_id": "10244",
    "city": "海北"
  }, {
    
    
    "city_id": "10245",
    "city": "黄南"
  }, {
    
    
    "city_id": "10246",
    "city": "海南"
  }, {
    
    
    "city_id": "10247",
    "city": "果洛"
  }, {
    
    
    "city_id": "10248",
    "city": "玉树"
  }, {
    
    
    "city_id": "10249",
    "city": "海西"
  }]
}, {
    
    
  "province_id": "22",
  "province": "四川",
  "citys": [{
    
    
    "city_id": "10250",
    "city": "成都"
  }, {
    
    
    "city_id": "10251",
    "city": "自贡"
  }, {
    
    
    "city_id": "10252",
    "city": "攀枝花"
  }, {
    
    
    "city_id": "10253",
    "city": "泸州"
  }, {
    
    
    "city_id": "10254",
    "city": "德阳"
  }, {
    
    
    "city_id": "10255",
    "city": "绵阳"
  }, {
    
    
    "city_id": "10256",
    "city": "广元"
  }, {
    
    
    "city_id": "10257",
    "city": "遂宁"
  }, {
    
    
    "city_id": "10258",
    "city": "内江"
  }, {
    
    
    "city_id": "10259",
    "city": "乐山"
  }, {
    
    
    "city_id": "10260",
    "city": "南充"
  }, {
    
    
    "city_id": "10261",
    "city": "眉山"
  }, {
    
    
    "city_id": "10262",
    "city": "宜宾"
  }, {
    
    
    "city_id": "10263",
    "city": "广安"
  }, {
    
    
    "city_id": "10264",
    "city": "达州"
  }, {
    
    
    "city_id": "10265",
    "city": "雅安"
  }, {
    
    
    "city_id": "10266",
    "city": "巴中"
  }, {
    
    
    "city_id": "10267",
    "city": "资阳"
  }, {
    
    
    "city_id": "10268",
    "city": "阿坝"
  }, {
    
    
    "city_id": "10269",
    "city": "甘孜"
  }, {
    
    
    "city_id": "10270",
    "city": "凉山"
  }]
}, {
    
    
  "province_id": "23",
  "province": "山东",
  "citys": [{
    
    
    "city_id": "10271",
    "city": "济南"
  }, {
    
    
    "city_id": "10272",
    "city": "青岛"
  }, {
    
    
    "city_id": "10273",
    "city": "淄博"
  }, {
    
    
    "city_id": "10274",
    "city": "枣庄"
  }, {
    
    
    "city_id": "10275",
    "city": "东营"
  }, {
    
    
    "city_id": "10276",
    "city": "烟台"
  }, {
    
    
    "city_id": "10277",
    "city": "潍坊"
  }, {
    
    
    "city_id": "10278",
    "city": "济宁"
  }, {
    
    
    "city_id": "10279",
    "city": "泰安"
  }, {
    
    
    "city_id": "10280",
    "city": "威海"
  }, {
    
    
    "city_id": "10281",
    "city": "日照"
  }, {
    
    
    "city_id": "10282",
    "city": "临沂"
  }, {
    
    
    "city_id": "10283",
    "city": "德州"
  }, {
    
    
    "city_id": "10284",
    "city": "聊城"
  }, {
    
    
    "city_id": "10285",
    "city": "滨州"
  }, {
    
    
    "city_id": "10286",
    "city": "菏泽"
  }]
}, {
    
    
  "province_id": "24",
  "province": "上海",
  "citys": [{
    
    
    "city_id": "10287",
    "city": "上海"
  }]
}, {
    
    
  "province_id": "25",
  "province": "山西",
  "citys": [{
    
    
    "city_id": "10288",
    "city": "太原"
  }, {
    
    
    "city_id": "10289",
    "city": "大同"
  }, {
    
    
    "city_id": "10290",
    "city": "阳泉"
  }, {
    
    
    "city_id": "10291",
    "city": "长治"
  }, {
    
    
    "city_id": "10292",
    "city": "晋城"
  }, {
    
    
    "city_id": "10293",
    "city": "朔州"
  }, {
    
    
    "city_id": "10294",
    "city": "晋中"
  }, {
    
    
    "city_id": "10295",
    "city": "运城"
  }, {
    
    
    "city_id": "10296",
    "city": "忻州"
  }, {
    
    
    "city_id": "10297",
    "city": "临汾"
  }, {
    
    
    "city_id": "10298",
    "city": "吕梁"
  }]
}, {
    
    
  "province_id": "26",
  "province": "陕西",
  "citys": [{
    
    
    "city_id": "10299",
    "city": "西安"
  }, {
    
    
    "city_id": "10300",
    "city": "铜川"
  }, {
    
    
    "city_id": "10301",
    "city": "宝鸡"
  }, {
    
    
    "city_id": "10302",
    "city": "咸阳"
  }, {
    
    
    "city_id": "10303",
    "city": "渭南"
  }, {
    
    
    "city_id": "10304",
    "city": "延安"
  }, {
    
    
    "city_id": "10305",
    "city": "汉中"
  }, {
    
    
    "city_id": "10306",
    "city": "榆林"
  }, {
    
    
    "city_id": "10307",
    "city": "安康"
  }, {
    
    
    "city_id": "10308",
    "city": "商洛"
  }]
}, {
    
    
  "province_id": "27",
  "province": "天津",
  "citys": [{
    
    
    "city_id": "10309",
    "city": "天津"
  }]
}, {
    
    
  "province_id": "28",
  "province": "新疆",
  "citys": [{
    
    
    "city_id": "10310",
    "city": "乌鲁木齐"
  }, {
    
    
    "city_id": "10311",
    "city": "克拉玛依"
  }, {
    
    
    "city_id": "10312",
    "city": "吐鲁番"
  }, {
    
    
    "city_id": "10313",
    "city": "哈密"
  }, {
    
    
    "city_id": "10314",
    "city": "昌吉"
  }, {
    
    
    "city_id": "10315",
    "city": "博尔塔拉"
  }, {
    
    
    "city_id": "10316",
    "city": "巴音郭楞"
  }, {
    
    
    "city_id": "10317",
    "city": "阿克苏"
  }, {
    
    
    "city_id": "10318",
    "city": "克孜勒苏"
  }, {
    
    
    "city_id": "10319",
    "city": "喀什"
  }, {
    
    
    "city_id": "10320",
    "city": "和田"
  }, {
    
    
    "city_id": "10321",
    "city": "伊犁"
  }, {
    
    
    "city_id": "10322",
    "city": "塔城"
  }, {
    
    
    "city_id": "10323",
    "city": "阿勒泰"
  }]
}, {
    
    
  "province_id": "29",
  "province": "西藏",
  "citys": [{
    
    
    "city_id": "10324",
    "city": "拉萨"
  }, {
    
    
    "city_id": "10325",
    "city": "日喀则"
  }, {
    
    
    "city_id": "10326",
    "city": "昌都"
  }, {
    
    
    "city_id": "10327",
    "city": "林芝"
  }, {
    
    
    "city_id": "10328",
    "city": "山南"
  }, {
    
    
    "city_id": "10329",
    "city": "那曲"
  }, {
    
    
    "city_id": "10330",
    "city": "阿里"
  }]
}, {
    
    
  "province_id": "30",
  "province": "云南",
  "citys": [{
    
    
    "city_id": "10331",
    "city": "昆明"
  }, {
    
    
    "city_id": "10332",
    "city": "曲靖"
  }, {
    
    
    "city_id": "10333",
    "city": "玉溪"
  }, {
    
    
    "city_id": "10334",
    "city": "保山"
  }, {
    
    
    "city_id": "10335",
    "city": "昭通"
  }, {
    
    
    "city_id": "10336",
    "city": "丽江"
  }, {
    
    
    "city_id": "10337",
    "city": "普洱"
  }, {
    
    
    "city_id": "10338",
    "city": "临沧"
  }, {
    
    
    "city_id": "10339",
    "city": "楚雄"
  }, {
    
    
    "city_id": "10340",
    "city": "红河"
  }, {
    
    
    "city_id": "10341",
    "city": "文山"
  }, {
    
    
    "city_id": "10342",
    "city": "西双版纳"
  }, {
    
    
    "city_id": "10343",
    "city": "大理"
  }, {
    
    
    "city_id": "10344",
    "city": "德宏"
  }, {
    
    
    "city_id": "10345",
    "city": "怒江"
  }, {
    
    
    "city_id": "10346",
    "city": "迪庆"
  }]
}, {
    
    
  "province_id": "31",
  "province": "浙江",
  "citys": [{
    
    
    "city_id": "10347",
    "city": "杭州"
  }, {
    
    
    "city_id": "10348",
    "city": "宁波"
  }, {
    
    
    "city_id": "10349",
    "city": "温州"
  }, {
    
    
    "city_id": "10350",
    "city": "嘉兴"
  }, {
    
    
    "city_id": "10351",
    "city": "湖州"
  }, {
    
    
    "city_id": "10352",
    "city": "绍兴"
  }, {
    
    
    "city_id": "10353",
    "city": "金华"
  }, {
    
    
    "city_id": "10354",
    "city": "衢州"
  }, {
    
    
    "city_id": "10355",
    "city": "舟山"
  }, {
    
    
    "city_id": "10356",
    "city": "台州"
  }, {
    
    
    "city_id": "10357",
    "city": "丽水"
  }]
}, {
    
    
  "province_id": "32",
  "province": "台湾",
  "citys": [{
    
    
    "city_id": "10358",
    "city": "台湾"
  }]
}, {
    
    
  "province_id": "33",
  "province": "香港",
  "citys": [{
    
    
    "city_id": "10359",
    "city": "香港"
  }]
}, {
    
    
  "province_id": "34",
  "province": "澳门",
  "citys": [{
    
    
    "city_id": "10360",
    "city": "澳门"
  }]
}];

function init(that){
    
    
  that.setData( {
    
     
        'cityData': cityData
    });
}

module.exports={
    
    
    init:init
}

API

提交资料认证并申请接口

  1. 访问聚合数据,创建/登录账号,点击个人中心,填写对应的资料进行实名认证并申请对应的接口权限。
    接口申请地址点此访问

在这里插入图片描述
在这里插入图片描述

拼接参数调用接口

  1. 可以看到调用该接口的参数很简单,只有用户应用key以及city_id,也就是我们上面所封装的省市区js里面的数据。

在这里插入图片描述

  1. 复制对应的key并实现从省市区JS中获取用户所选择的城市id。

在这里插入图片描述

  1. 因为picker组件所响应的值是某某省、某某市这样的数据,而我们所封装的JS数据中又是没有省跟市这些后缀的,所以在选择的时候需要将省市区进行最后一位的移除,然后再通过findIndex的方式找到对应的下标,通过下标再找到对应的city_id。

在这里插入图片描述
在这里插入图片描述

  1. 能够正常的获取到城市id后,我们就可以拼接参数调用接口了。

在这里插入图片描述

    wx.request({
    
    
      url: 'http://apis.juhe.cn/springTravel/hsjg?key=这里填写你的应用key&city_id=' + cityCode,
      method: 'get',
      contentType: "application/x-www-form-urlencoded",
      success: function (res) {
    
    
        that.setData({
    
    
          hospitalData: res.data.result.data
        });
      }
    });

渲染数据优化细节

  1. 查看接口返回并渲染数据,通过上面的步骤我们可以得到如下图,核酸检测点数据已经成功返回了。

在这里插入图片描述

  1. 在页面上定义对应的view及wx:for,将核酸检查点名称及电话进行展示。

在这里插入图片描述

  1. 在能将数据进行渲染之后,可以优化一些细节,例如导航及拨号等功能。
<image src="../../images/phone.png" class="phoneImg"></image>
 <image src="../../images/map.png" class="mapIcon" data-name="{
    
    {item.name}}" data-id="{
    
    {item.address}}" bindtap="goMap"></image>
  1. 拨号功能,在拨号图标实现对应的函数,将循环中的电话号码以data-id的方式进行传递。

在这里插入图片描述

    wx.makePhoneCall({
    
    
      phoneNumber: e.currentTarget.dataset.id,
      success: function () {
    
    
        console.log('成功拨打电话')
      }
    })
  1. 导航功能,在地图小图标上面将循环中的address字段以data-id的方式进行传递。因为唤醒地图需要准确的经纬度,所以我们这里还需要将检测点的地址进行转换,最后再使用wx.openLocation通过微信内置地图查看位置及导航。

在这里插入图片描述

  goMap(e) {
    
    
    let detail = e.currentTarget.dataset.id;
    let name = e.currentTarget.dataset.name;
    //地址转换经纬度
    qqmapsdk.geocoder({
    
    
      address: e.currentTarget.dataset.id,
      success: function (res) {
    
     //成功后的回调
        wx.openLocation({
    
     //​使用微信内置地图查看位置。
          latitude: parseFloat(res.result.location.lat), //要去的纬度-地址
          longitude: parseFloat(res.result.location.lng), //要去的经度-地址
          name: name,
          address: detail
        })
      }
    });
  },

在路上碰到几个刚来的深漂拎着大包小包问哪里有核酸可以做,给他们指完方向后觉得可以开发一个小工具帮助出门在外的朋友,抗疫不仅仅是精神的对垒也是物质的角力。

猜你喜欢

转载自blog.csdn.net/weixin_42794881/article/details/127457495