微信小程序使用map组件实现解析经纬度功能示例


Posted in Javascript onJanuary 22, 2019

本文实例讲述了微信小程序使用map组件实现解析经纬度功能。分享给大家供大家参考,具体如下:

声明

bug: 页脚的详细地址在真机测试是会出现不显示问题?

造成原因:在小程序map组件的同一区域,map组件的视图层比普通的文本视图层要高,所以在真机会遮挡!

解决办法:将该文本视图采用cover-view,放在map中。

感谢: 感谢Lrj_estranged指出问题!

效果图

微信小程序使用map组件实现解析经纬度功能示例

实现原理

1. map组件实现定位标记或者指定定位标记,并保存location。

2. 采用高德地图微信小程序开发API(getRegeo)获取当前位置或者指定位置的详细描述。

WXML

<view class="map_container">
 <map class="map" longitude="{{longitude}}" latitude="{{latitude}}" include-points="{{points}}" markers='{{markers}}'></map>
 <view class="map-tab-bar map-foot {{isShow ? '' : 'map-hide'}}">
  <view class="map-name">{{name}}</view>
  <view class="map-address">{{address}}</view>
 </view>
</view>

JS

获取当前位置的经纬度解析详情

const app = getApp();
const amap = app.data.amap;
const key = app.data.key;
Page({
 data:{
  isShow: true,
  longitude:null,
  latitude:null,
  markers:[],
  points:[],
  name:'',
  address:'',
  location:''
 },
 onLoad(){
  var _this = this;
  var myAmap = new amap.AMapWX({ key: key });
  // 获取定位地址的描述数据
  _this.getRegeo(myAmap);
 },
 getRegeo(myAmap){
  var _this = this;
  myAmap.getRegeo({
   iconPath: '../../src/images/ding.png',
   width: 32,
   height: 32,
   location: _this.data.location,
   success(res) {
    var obj = res[0];
    if (obj) {
     _this.setData({
      longitude: obj.longitude,
      latitude: obj.latitude,
      name: obj.name,
      address: obj.desc,
      points: [{
       longitude: obj.longitude,
       latitude: obj.latitude
      }],
      markers: [{
       id: obj.id,
       latitude: obj.latitude,
       longitude: obj.longitude,
       iconPath: obj.iconPath,
       width: obj.width,
       height: obj.height
      }]
     })
    }
   },
   fail(res) {
    wx.showToast({ title: '失败!' })
   }
  })
 }
})

获取指定位置的经纬度解析详情

// 获取输入地址的location
// 假如输入的是:成都 欧尚庭院
myAmap.getInputtips({
 keywords: '欧尚庭院',
 city:'成都',
 success(res){
  _this.setData({
   location: res.tips[0].location
  })
  /************************************************/
  // 获取输入地址描述数据
  _this.getRegeo(myAmap);
  /************************************************/
 }
})

总结

1. 获取当前定位坐标的经纬度解析详情,直接调用高德地图API(getRegeo ),返回默认当前坐标的详情。

2. 获取指定定位坐标的经纬度解析详情,通过高德地图API(getInputtips)或者微信小程序的API(wx.chooseLocation)获取指定位置的 location ,通过高德地图API(getRegeo )获取坐标解析详情。

希望本文所述对大家微信小程序开发有所帮助。

Javascript 相关文章推荐
锋利的jQuery 第三章章节总结的例子
Mar 23 Javascript
jQuery中filter(),not(),split()使用方法
Jul 06 Javascript
解决jquery submit()提交表单提示:f[s] is not a function
Jan 23 Javascript
jquery $(this).attr $(this).val方法使用介绍
Oct 08 Javascript
得到form下的所有的input的js代码
Nov 07 Javascript
Javascript基础教程之数据类型转换
Jan 18 Javascript
在AngularJS应用中实现一些动画效果的代码
Jun 18 Javascript
javascript 实现文本使用省略号替代(超出固定高度的情况)
Feb 21 Javascript
jQuery响应滚动条事件功能示例
Oct 14 jQuery
vue使用自定义指令实现拖拽
Jan 29 Javascript
微信小程序收藏功能的实现代码
Jun 19 Javascript
vue中watch和computed的区别与使用方法
Aug 23 Javascript
微信小程序全局变量功能与用法详解
Jan 22 #Javascript
微信小程序使用map组件实现路线规划功能示例
Jan 22 #Javascript
JavaScript JMap类定义与使用方法示例
Jan 22 #Javascript
vue2.0 如何在hash模式下实现微信分享
Jan 22 #Javascript
JavaScript继承与聚合实例详解
Jan 22 #Javascript
JavaScript格式化json和xml的方法示例
Jan 22 #Javascript
基于vue的验证码组件的示例代码
Jan 22 #Javascript
You might like
php通过记录IP来防止表单重复提交方法分析
2014/12/16 PHP
PHP批量修改文件名称的方法分析
2017/02/27 PHP
Laravel Intervention/image图片处理扩展包的安装、使用与可能遇到的坑详解
2017/11/14 PHP
基于swoole实现多人聊天室
2018/06/14 PHP
javascript 兼容FF的onmouseenter和onmouseleave的代码
2008/07/19 Javascript
js读取json的两种常用方法示例介绍
2014/10/19 Javascript
node.js中的events.emitter.listeners方法使用说明
2014/12/10 Javascript
jQuery中fadeOut()方法用法实例
2014/12/24 Javascript
JavaScript实现级联菜单的方法
2015/06/29 Javascript
jQuery EasyUI实现右键菜单变灰不可用效果
2015/09/24 Javascript
Node.js 中exports 和 module.exports 的区别
2017/03/14 Javascript
angularJs使用$watch和$filter过滤器制作搜索筛选实例
2017/06/01 Javascript
JS检测window.open打开的窗口是否关闭
2017/06/25 Javascript
Vue2.0 vue-source jsonp 跨域请求
2017/08/04 Javascript
vue项目国际化vue-i18n的安装使用教程
2018/03/14 Javascript
微信小程序template模版的使用方法
2019/04/13 Javascript
vue 路由守卫(导航守卫)及其具体使用
2020/02/25 Javascript
[01:06:59]完美世界DOTA2联赛PWL S2 Magma vs FTD 第一场 11.29
2020/12/02 DOTA
在Python中操作字典之setdefault()方法的使用
2015/05/21 Python
利用Hyperic调用Python实现进程守护
2018/01/02 Python
Jupyter notebook在mac:linux上的配置和远程访问的方法
2019/01/14 Python
PyQt5 多窗口连接实例
2019/06/19 Python
python将四元数变换为旋转矩阵的实例
2019/12/04 Python
Python实现投影法分割图像示例(一)
2020/01/17 Python
使用python+poco+夜神模拟器进行自动化测试实例
2020/04/23 Python
python中random模块详解
2021/03/01 Python
写一个函数,求一个字符串的长度。在main函数中输入字符串,并输出其长度
2015/11/18 面试题
工商管理专业实习大学生自我鉴定
2013/09/19 职场文书
师范生自荐信范文
2013/10/06 职场文书
创建市级文明单位实施方案
2014/03/01 职场文书
2014年社区学雷锋活动总结
2014/03/09 职场文书
出纳担保书范文
2014/04/02 职场文书
房屋过户委托书范本
2014/10/07 职场文书
离婚代理词范文
2015/05/23 职场文书
经典励志格言:每日一句,让你每天充满能量
2019/08/16 职场文书
Java面试题冲刺第十八天--Spring框架3
2021/08/07 面试题