Web端/微信小程序获取定位(经纬度转地址信息)

  • Post author:
  • Post category:小程序


1.web端不需要下载插件,申请web的key就可以了,如果是小程序,需要下载插件,并申请微信小程序key

插件下载:

相关下载-微信小程序插件 | 高德地图API (amap.com)

2.操作步骤:进去上面网址下载插件后根据《

入门指南

》去申请相应用到的

key

3.代码:代码里web和移动端两种方法都写了,需要哪个用哪个

注意:如果是微信小程序:api内容不用改变;


如果是app:api需要改下=>(


wx.request


替换为


uni.request


),否则接口会报错;




如果是web端:不用引入api;

<template>
  <view>   
<u--form labelPosition="left" :model="form" :rules="rules">
          <u-form-item label="定位" prop="clockAddress" borderBottom labelWidth="100px" @click="getLocation">
         
            <u--input v-model="form.clockAddress" border="none" inputAlign="right" placeholder="请选择"></u--input>

          </u-form-item>
</u--form>
 
  </view>
</template>

<script>

var amapFile = require('@/api/amap-wx.130.js') 
export default {


  data() {
    return {
      form:{}
      rules: [],

    };
  },
 
  methods: {
    // 获取当前位置
    getLocation() {
      const _this = this
      uni.getLocation({

        type: 'wgs84',
        geocode: true,//设置该参数为true可直接获取经纬度及城市信息
        success: function (res) {
          //web端获取定位
          // _this.loadCity(res.longitude, res.latitude)
          //移动端获取定位
          _this.getCity(res.latitude, res.longitude)

        }
      })
    },
    //移动端获取定位
    getCity(latitude, longitude) {
				console.log(longitude, latitude)
				var that = this;
				//这里key需要自己在高德地图申请,微信小程序就必须选择微信小程序key
				that.location = `${longitude},${latitude}`
				var myAmapFun = new amapFile.AMapWX({
					key: '放自己申请的key',
					// batch: true
				});
				myAmapFun.getRegeo({
				//如果经纬度有问题会导致不进入回调方法,从而报错
					location: that.location,
					success: function(e) {
            debugger
						console.log(e)
						//成功回调
						that.form.clockAddress = e[0].regeocodeData.formatted_address; //详细地址
            that.form.clockTime = that.getNowTime()
					},
					fail: function(info) {
						//失败回调
						console.log(info)
					}
				})
			}, //关闭弹框

//web获取定位
    loadCity(longitude, latitude) {
      console.log(longitude, latitude,'经纬度');
      const _this = this
      uni.request({
        header: {
          'Content-Type': 'application/text',
        },
        //注意:这里的key值需要高德地图的 web服务生成的key  只有web服务才有逆地理编码
        url:
          'https://restapi.amap.com/v3/geocode/regeo?output=JSON&location=' +
          longitude +
          ',' +
          latitude +
          '&key=' +
          '放自己申请的key' +
          '&radius=1000&extensions=all',
        success(res) {
          if (res.statusCode === 200) {
            console.log(res,'返回值');
            _this.form.clockAddress = res.data.regeocode.addressComponent.city
            console.log('获取中文街道地理位置成功', _this.form.clockAddress)
          } else {
            console.log('获取信息失败,请重试!')
          }
        },
      })
    },





版权声明:本文为weixin_48419726原创文章,遵循 CC 4.0 BY-SA 版权协议,转载请附上原文出处链接和本声明。