小程序开发笔记【四】,集成高德地图进行逆地址解析

摘要:
微信小程序获取并选择位置以获取当前地理位置和速度wx。getLocation({type:“wgs84”,//wgs84返回gps坐标,gcj02返回可用于wx的坐标。openLocation gcj02在Android机器上有一个bug,无法选择位置成功(res){}});打开地图并选择位置wx。chooseLocation({success(res){letname=res.name;//name

微信小程序获取及选择位置

  1. 获取当前的地理位置、速度
wx.getLocation({
        type: "wgs84", //wgs84 返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标  gcj02在android机上有bug,无法选择位置
        success(res) {
        }
      });
  1. 打开地图选择位置
wx.chooseLocation({
            success(res) {
              let name = res.name; //名称
              let address = res.address; //详细地址
              let longitude = res.longitude;//经度
              let latitude = res.latitude;//纬度
                fail: function(info){
                  //失败回调
                  console.log(info)
                }
              })
            }
          });
  1. 使用微信内置地图查看位置
openLocation(item){
      let longitude = item.longitude;
      let latitude = item.latitude;
      wx.openLocation({
        latitude,
        longitude,
        scale: 18
      });
    },

逆地址解析(根据经纬度坐标获取城市省份信息)

微信小程序位置api并没有提供获取省份城市的信息,这里使用高德第三方地图来获取省份城市

  1. 申请高德key

  2. 将https://restapi.amap.com添加到微信小程序合法域名里面

  3. 下载高德微信小程序sdk
    https://lbs.amap.com/api/wx/download

高德微信小程序sdk文档说明
https://lbs.amap.com/api/wx/reference/core

  1. 在vue文件中引入
import amapFile from "../../../../../static/sdk/amap-wx";
  1. 初始化地图及获取省份城市信息
mounted() {
    this.initMap();
  },
initMap(){
      this.myAmapFun = new amapFile.AMapWX({key:'app key'});
    },

that.myAmapFun.getRegeo({
                location:`${longitude},${latitude}`,
                success: function(data){
                  let province = data[0].regeocodeData.addressComponent.province;
                  let city = data[0].regeocodeData.addressComponent.city;
                  // city:[]
                  if(Object.prototype.toString.call(city)=="[object Array]"){
                    city = city.join('');
                  }
                  that.province = province;
                  that.city = city;
                },
                fail: function(info){
                  //失败回调
                  console.log(info)
                }
              })

返回参数说明
https://lbs.amap.com/api/webservice/guide/api/georegeo/#regeo

进入小程序让只初始化一次

  1. 在main.js中引入并初始化
import amapFile from'../static/sdk/amap-wx';
//将其绑定到vue原型上  //使用 this.$myAmapFun访问
let myAmapFun = new amapFile.AMapWX({ key: 'app key' });
Vue.prototype.$myAmapFun = myAmapFun
  1. vue组件中使用高德地图
that.$myAmapFun.getRegeo({
                location:`${longitude},${latitude}`,
                success: function(data){
                  let province = data[0].regeocodeData.addressComponent.province;
                  let city = data[0].regeocodeData.addressComponent.city;
                  // city:[]
                  if(Object.prototype.toString.call(city)=="[object Array]"){
                    city = city.join('');
                  }
                  that.province = province;
                  that.city = city;
                },
                fail: function(info){
                  //失败回调
                  console.log(info)
                }
              })

免责声明:文章转载自《小程序开发笔记【四】,集成高德地图进行逆地址解析》仅用于学习参考。如对内容有疑问,请及时联系本站处理。

上篇linux系统mysql的MHA高可用及测试VIP漂移DevExpress WinForm MVVM数据和属性绑定指南(Part 1)下篇

宿迁高防,2C2G15M,22元/月;香港BGP,2C5G5M,25元/月 雨云优惠码:MjYwNzM=

相关文章

小程序textarea完美填坑

  相信做微信小程序的码友们都被textarea这个原生组件坑过,什么placeholder位置错乱,穿透弹窗或遮罩层,ios上输入法弹起后换行输入内容遮挡,删除输入内容时内容被遮挡等等。。。 反正综上所述我全遇到了,埋完一个坑又出一个新坑,在埋坑过程中数次想过放弃(就想跟老板说这是小程序的bug解决不了),但想想自己曾经夸下的海口(没有搞不定的,只有不想...

解决微信小程序textarea层级太高遮挡其他组件的问题

<view class='remark'> <view class='title'> 备注说明 </view> <textarea class='mark_textarea' placeholder='请说明人员调用具体原因'...

使用百度地图API进行Android地图应用开发(Eclipse)

随着基于位置的服务的兴起,地图类App呈现爆发趋势。随着而来的是地图供应商开放大量的API。供开发人员开发基于PC或者移动端的应用程序。 如今我们研究使用百度地图SDK进行Android项目的开发。 本文讨论怎样导入百度地图SDK。 主要分为server端配置和client配置。 (1)首先要有一个百度账号,账号能够去百度官网申请,然后登陆:http:/...

经验分享:程序员如何快速定位问题(BUG)

让我掉下眼泪的 不止内存泄漏 让我夜夜不眠的 不止你的需求 明天还要改多久 你攥着我的手 让我感到为难的 是善变的需求 发布总是在半夜 回滚是永远的愁 错误(Bug)随时的暴漏 困扰着我心头 作为程序员,以上这些场景你一定都经历过。今天就来聊聊如何快速定位问题。 先划重点,下文所写都是一家之言,本人工作经验不多,语言表达能力有限,如果写的不好,还望轻喷...

如何在网中使用百度地图API自定义个性化地图

<!DOCTYPE html> <html xmlns="http://www.w3.org/1999/xhtml"> <head> <meta http-equiv="Content-Type" content="text/html; charset=utf-8" /> <...

Vue3.0中使用高德地图

VUE-CLI 3.0 中配置高德地图 在项目开发中,有时需要加载地图控件,这里记录下载vue-cli中引入地图控件的基本流程。 1、首先,需要注册高德开放平台的账号,并在【应用管理】页面【创建新应用】,为应用添加Key值 高德开放平台:https://lbs.amap.com/ 2、在Vue-Cli中public下的index.html加入script...