微信小程序使用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 相关文章推荐
js获取日期:昨天今天和明天、后天
Jun 11 Javascript
javascript事件冒泡实例分析
May 13 Javascript
JS组件Bootstrap按钮组与下拉按钮详解
May 10 Javascript
深入解析JavaScript中的arguments对象
Jun 12 Javascript
jQuery简单实现页面元素置顶时悬浮效果示例
Aug 01 Javascript
ES6新特性之数组、Math和扩展操作符用法示例
Apr 01 Javascript
深入浅出webpack教程系列_安装与基本打包用法和命令参数详解
Sep 10 Javascript
JavaScript框架Angular和React深度对比
Nov 20 Javascript
详解redux异步操作实践
Aug 15 Javascript
vue响应式系统之observe、watcher、dep的源码解析
Apr 09 Javascript
jQuery cookie的公共方法封装和使用示例
Jun 01 jQuery
JS实现九宫格拼图游戏
Jun 28 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
推荐一篇入门级的Class文章
2007/03/19 PHP
一个图形显示IP的PHP程序代码
2007/10/19 PHP
PHP合并数组+与array_merge的区别分析
2010/08/01 PHP
Yii2选项卡的简单使用
2017/05/26 PHP
js实现的日期操作类DateTime函数代码
2010/03/16 Javascript
JS模拟面向对象全解(二、类型与赋值)
2011/07/13 Javascript
html中table数据排序的js代码
2011/08/09 Javascript
Javascript 拖拽的一些简单的应用(逐行分析代码,让你轻松了拖拽的原理)
2015/01/23 Javascript
jquery实现鼠标滑过显示二级下拉菜单效果
2015/08/24 Javascript
基于jquery实现页面滚动到底自动加载数据的功能
2015/12/19 Javascript
一篇文章掌握RequireJS常用知识
2016/01/26 Javascript
AngularJS学习笔记(三)数据双向绑定的简单实例
2016/11/08 Javascript
详解jquery easyui之datagrid使用参考
2016/12/05 Javascript
详解axios在vue中的简单配置与使用
2017/05/10 Javascript
用js将long型数据转换成date型或datetime型的实例
2017/07/03 Javascript
基于jquery实现五星好评
2017/11/18 jQuery
详解vue指令与$nextTick 操作DOM的不同之处
2018/08/02 Javascript
JS中数组与对象的遍历方法实例小结
2018/08/14 Javascript
详解javascript appendChild()的完整功能
2018/08/18 Javascript
vue click.stop阻止点击事件继续传播的方法
2018/09/04 Javascript
在Vue项目中取消ESLint代码检测的步骤讲解
2019/01/27 Javascript
layer.js之回调销毁对话框的例子
2019/09/11 Javascript
d3.js 地铁轨道交通项目实战
2019/11/27 Javascript
[03:39]DOTA2英雄梦之声_第05期_幽鬼
2014/06/23 DOTA
在 Django/Flask 开发服务器上使用 HTTPS
2014/07/03 Python
Python爬虫的两套解析方法和四种爬虫实现过程
2018/07/20 Python
python matplotlib库绘制散点图例题解析
2019/08/10 Python
解决Tensorflow2.0 tf.keras.Model.load_weights() 报错处理问题
2020/06/12 Python
杭州龙健科技笔试题.net部分笔试题
2016/01/24 面试题
简历自我评价模版
2014/01/31 职场文书
五好家庭事迹材料
2014/12/20 职场文书
2015年入党决心书
2015/02/05 职场文书
2015年信息宣传工作总结
2015/05/26 职场文书
婚宴父亲致辞
2015/07/27 职场文书
教师听课学习心得体会
2016/01/15 职场文书
Android使用EventBus发送消息,Fragment中接收消息的方法会执行多次
2022/04/24 Java/Android