微信小程序map组件

4 篇文章 0 订阅
订阅专栏

记录一下在使用map组件的时候所遇到的问题
在map组件这块,我主要要实现的功能有
(1)获取当前位置,并标记
(2)点击回到当前位置为中心
(3)搜索目的位置
(4)匹配停车位并显示在地图上

1.map组件的使用

(https://developers.weixin.qq.com/miniprogram/dev/component/map.html)
参考官方文档基本就能实现
最主要的几个参数有:latitude,longitude地图中心的经纬度,scale 缩放级别 ,markers 标记点,show-Location 是否显示当前定位。


		<map id="myMap" latitude="{{latitude}}" longitude="{{longitude}}" scale="20" markers="{{markers}}" show-location
			enable-3D="true" style="width: 100%; height:600px;">
		</map>

里面的latitude和longitude我都是获取的当前定位

/**
   * 生命周期函数--监听页面加载
   */
  onLoad: function (options) {
    let that = this;
    that.requestLocation();
  },
requestLocation: function () {
    var that = this;
    wx.getLocation({
      type: 'gcj02',
      success: function (res) {
        that.setData({
          latitude: res.latitude,
          longitude: res.longitude,
        })
        that.moveTolocation();
      },
    })
  },

2.定位精确性问题

map组件中的show-location方法获取的定位点和,getLocation方法所获取的定位点不一致。
在map组件中有一个show-location属性,设置为true,就会显示一个绿色的当前位置的点。
使用getLocation获取当前位置,在markers中标记之后也可以获取当前位置的点
但是一开始两个点不一致。
在这里插入图片描述

后来查询之后发现是两个方法所用的坐标系不一致,将getLocation中的type设置为国测局坐标// GPS坐标系 // type:'wgs84', // 国测局火星坐标系 type:'gcj02',之后坐标变为一致
在这里插入图片描述

3.点击标签回到当前位置为中心

页面展示标签官方说是可以用cover-view,但调试时有说现在可以同层渲染了,支持用view。也就是说可以直接使用view作为页面上的标签。

<view bindtap="clearInput">

		<map id="myMap" latitude="{{latitude}}" longitude="{{longitude}}" scale="20" markers="{{markers}}" show-location
			enable-3D="true" style="width: 100%; height:600px;">
		</map>
		<view class='cover-layout2'bindtap='selfLocationClick'>
			<image class='listShow' src='../../images/parkingList/list.png'></image>
		</view>
	</view>

核心方法

 //调整重心位置和缩放级别
  selfLocationClick: function () {
    var that = this;
    //还原默认缩放级别
    that.setData({
      scale: defaultScale
    })
    //必须请求定位,改变中心点坐标
    that.requestLocation();
  },
  //请求地理位置
  requestLocation: function () {
    var that = this;
    wx.getLocation({
      type: 'gcj02',
      success: function (res) {
        that.setData({
          latitude: res.latitude,
          longitude: res.longitude,
        })
        that.moveTolocation();
      },
    })
  },
  /**
   * 移动到中心点(核心的方法)
   */
  moveTolocation: function () {
    var mapCtx = wx.createMapContext(mapId);
    mapCtx.moveToLocation();
  },

4.搜索提示

主要实现在搜索框搜索,提示搜索内容并返回搜索目的地的坐标。用到了腾讯位置服务的方法

 /**
   * 
   *搜索框输入事件的绑定,
   1.获取搜索的提示
   2.获取目的地数据
   suggestion数组中存放搜索的列表,inputVal中是最终选中的结果。
   */
  inputTyping: function (e) {
    qqmapsdk = new QQMapWX({
      key: ''
    });
    var that = this;
    qqmapsdk.getSuggestion({
      keyword: e.detail.value,
      success: function (res) {
        console.log(res);
        var sug = [];
        for (var i = 0; i < res.data.length; i++) {
          sug.push({ // 获取返回结果,放到sug数组中
            title: res.data[i].title,
            id: res.data[i].id,
            addr: res.data[i].address,
            city: res.data[i].city,
            district: res.data[i].district,
            latitude: res.data[i].location.lat,
            longitude: res.data[i].location.lng
          });
        }
        that.setData({ //设置suggestion属性,将关键词搜索结果以列表形式展示
          suggestion: sug,
          showSuggestion: true
        });

      },
      fail: function (error) {
        console.error(error);
      },
      complete: function (res) {
        console.log(res);
      }

    });

  },
  //选中推荐项
  backfill: function (e) {
    var id = e.currentTarget.id;
    for (var i = 0; i < this.data.suggestion.length; i++) {
      var tem = [];
      if (i == id) {
        tem.push({ // 获取返回结果,放到sug数组中
          title: this.data.suggestion[i].title,
          id: this.data.suggestion[i].id,
          addr: this.data.suggestion[i].address,
          city: this.data.suggestion[i].city,
          district: this.data.suggestion[i].district,
          latitude: this.data.suggestion[i].latitude,
          longitude: this.data.suggestion[i].longitude
        });

        console.log(this.data.suggestion[i]);
        this.setData({
          inputVal: this.data.suggestion[i].title,
          inputDetile: tem

        });
        console.log(this.data.inputDetile)
      }
    }
  },

5.搜索结果的展示

这个功能只是实现了简单的展示,对于搜索的结果并没有过滤处理。

使用微信小程序开发实现定位和导航功能
m0_75244442的博客
08-10 309
在该代码中,我们定义了一个Page对象,并在data属性中定义了一些初始数据,如地图的中心经纬度、标注点和路线。地图组件的id为map,绑定了一些事件和属性,如bindcontroltap用于监听地图控件的点击事件,bindmarkertap用于监听地图标注的点击事件,show-location用于显示当前位置,enable-rotate用于启用地图的旋转功能,enable-3D用于启用地图的3D功能,show-compass用于显示地图的指南针。接下来,我们需要在页面中添加地图组件和相关的控件。
小程序map组件的show-location
weixin_42123532的博客
10-08 9211
小程序map组件的show-location 关于小程序map组件的show-location属性想必使用过map组件的人都知道,map组件的show-location的属性值不管true还是false都不会显示在地图上,其实在show-location为true的时候是会显示的,只是因为map组件的scale的原因,地图显示不出来,所以我们需要用到用的微信自带的api来曲线完成显示我们的当前位置...
uniapp 微信小程序 map marker图标不显示,点击图标进行切换,动态设置scale,ios图标不显示的处理,根据地图缩放层级展示不同数据
qq_66991255的博客
08-23 704
uniapp 微信小程序 map marker图标不显示,点击图标进行切换,动态设置scale,ios图标不显示的处理,根据地图缩放层级展示不同数据
微信小程序map组件地图定位当前位置
热门推荐
阿里巴啦的博客
12-21 1万+
wxml: &amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;lt;map id=&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;map&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot; latitude=&amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;amp;quot;{{latitude}
微信小程序获取用户地理位置拒绝后依然弹出授权
换日线的博客
10-08 2371
微信小程序获取用户地理位置拒绝后依然弹出授权 app.js App({ //获取用户地理位置权限 getPermission:function(obj){ wx.chooseLocation({ success: function (res) { obj.setData({ address:...
【uni-app】配合map组件定位“我的位置”显示到地图上
loyd3的博客
11-28 2088
map组件的makers代表标记点用于在地图上显示标记的位置,值是一个数组类型,可以有多个标记。
微信小程序——微信小程序地图显示当前详细位置点
qq_43201350的博客
07-18 784
添加:show-location属性为true <map id="map" longitude="{{longitude}}" latitude="{{latitude}}" scale="14" show-location></map>
微信小程序map组件动态markers
03-29
使用wepy框架,请求回来的数据设置给data里面初始化的markers,使用wx:if在拿到数据后渲染map组件,模拟器上没问题,真机上map组件渲染不出来   本主题由 Rolan 于 2018-10-12 14:17 审核通过       (此图片...
微信小程序map组件结合高德地图API实现wx.chooseLocation功能示例
10-17
主要介绍了微信小程序map组件结合高德地图API实现wx.chooseLocation功能,结合实例形式分析了map组件调用高德地图API接口获取地理位置提示列表并返回location相关操作技巧,需要的朋友可以参考下
微信小程序使用map组件实现路线规划功能示例
10-17
微信小程序中,实现路线规划功能是通过集成地图组件,特别是使用`map`组件来完成。这个功能使得用户能够在小程序内部获取导航信息,方便地规划出行路径。以下将详细介绍如何利用`map`组件来实现这一功能。 首先,...
关于微信小程序map组件z-index的层级问题分析
12-02
说起微信小程序map组件,可以说是良心之作了,一个组件解决了所以接入地图的所有麻烦,但是在实际小程序的试用过程中还是存在点问题的。 如下情景: 刚开始接入map组件的时候是在微信开发工具的模拟器上预览的,...
如何为微信小程序添加定位导航和地图标注功能
qq_67153941的博客
04-21 681
微信小程序中,可以通过内置的定位导航和地图标注功能,为用户提供精确的定位和导航服务,以及在地图上标注自定义的信息。下面将详细介绍如何为微信小程序添加这些功能。
微信小程序——map地图组件
code_nutter的博客
04-09 2411
1.wxml <view> <text bindtap="map">选择地图</text> <view> 您选取的地址是{{address}} 位置名称是{{name}} 经纬度是{{longitude}}{{latitude}} </view> </view> 2.js /** * 页面的初始数据 */ data: { address:'', name:'',.
微信小程序开发:实现地理位置定位功能
吃不胖.
10-28 5873
以上代码通过调用 wx.getLocation() 方法来获取用户的位置信息,并在成功获取到信息后,将该信息用于设置 latitude 和 longitude 的值,从而显示到地图上。随着微信小程序的发展,越来越多的企业和个人开始尝试开发微信小程序,作为一种新型的应用形态,微信小程序提供了诸多便利的功能,其中地理位置定位功能是非常重要的一个。地理位置定位功能可以便利用户查找周边的商家,获取实时的天气情况,或者提供定位服务等等,因此,实现地理位置功能对于微信小程序的开发者来说是必不可少的一项技能。
小程序原生-地理定位功能介绍和实现
最新发布
一个人的江湖
09-29 225
小程序地理定位是指通过小程序开发平台提供的API,来获取用户的地理位置信息。用户在使用小程序时,可以授权小程序获取自己的地理位置信息。:获取当前的地理位置:打开地图选择位置暂时只对部分类目的小程序开放,需要先通过类目审核,然后在小程序管理后台,「开发」-「开发管理」-「接口设置」中自助开通该接口权限。
小程序解决IOS端地图不能缩放的问题
BTTBHT的博客
10-15 451
解决IOS小程序地图组件不能缩放的问题,主要依靠CSS解决movable-area组件的兼容性bug
【备忘录】uni-app的地图相关组件操作,uni-app接入腾讯地图API的具体实现
Xcong_Zhu的博客
11-18 4444
uni-app接入腾讯地图API的可行解决方案
【uniapp 小程序】解决 map 组件出现标点(地图)自动偏移或 @regionchange 频繁触发的问题
Brod-Roy的博客
11-16 2832
在业务开发中出现了地图的中心标点向右侧缓慢移动的问题,在我解决后又发现了 @regionchange 方法出现了无限调用的问题。 本文仅解决与我相似的问题以做参考,并会附上对应的问题与参考的博客。
微信小程序map组件实现路线规划教程
"微信小程序使用map组件实现路线规划功能,结合了地图API获取路线信息,提供了多种出行方式的选择,如驾车、步行、公交和骑行。通过用户交互改变出行方式,并展示相应的路线和信息。" 在微信小程序开发中,map组件...
写文章

热门文章

  • 微信小程序map组件 3094
  • 2020.10.28 - 时间序列的预测问题 1534
  • 使用FLASK开发API接受图片返回图片大小 1494
  • web开发项目总结 1278
  • 用docker下载配置mosquitto 940

分类专栏

  • 面试笔试 1篇
  • 小程序开发 4篇
  • 学习工具 1篇
  • 群体感知 3篇
  • java集合 1篇

最新评论

  • 便利蜂实习总结

    CSDN-Ada助手: 非常感谢CSDN博主分享的“便利蜂实习总结”博客,我觉得这样的实习经历分享对其他用户尤为有益。下一篇博客可以考虑分享关于前端开发中的CSS技巧或者JavaScript开发中的设计模式,这些主题在实际工作中都非常实用,相信会有更多读者受益。期待你的下一篇精彩文章! 为了方便博主创作,提高生产力,CSDN上线了AI写作助手功能,就在创作编辑器右侧哦~(https://mp.csdn.net/edit?utm_source=blog_comment_recall )诚邀您来加入测评,到此(https://activity.csdn.net/creatActivity?id=10450&utm_source=blog_comment_recall)发布测评文章即可获得「话题勋章」,同时还有机会拿定制奖牌。

  • web开发项目总结

    不正经的kimol君: 学到了,点赞支持

  • 2020.10.12 java集合(1)Hashmap

    不正经的kimol君: 爱了爱了,写得确实不错哦,一起加油

大家在看

  • Java双亲委派机制讲解和常见问题解决案例示范 579
  • 特色农产品团购小程序 1112
  • STM32外设之ADC应用--寄存器开发
  • 旅游平台APP 586
  • 【Conda】解决 Conda 安装包时遇到的 `Collecting package metadata` 问题

最新文章

  • 便利蜂实习总结
  • web开发项目总结
  • 2020.11.30 小程序中文件上传
2021年2篇
2020年12篇

目录

目录

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43元 前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值

深圳坪山网站建设公司南平网站搜索优化网站数据搜索优化宜良网站优化收费泸州模板网站优化营销泰安网站优化靠谱府谷网站优化武汉新站网站优化宜春百度网站优化新安推广网站优化江阴个人网站优化软件包括什么新网站优化的思路商丘企业网站排名优化费用昌吉网站优化公司网站首页优化教程益阳网站优化免费咨询丰县网站优化多少钱网站优化工作计划书模板大连服务行业网站优化松江区搜狗网站优化定制方案淮南网站首页优化推荐广州网站优化找腾维网礼县网站seo优化排名城阳快速优化网站茂名关键词网站优化多少钱邯郸网站建设优化新乡网站推广优化收费标准锦州网站优化排名哪家好上海正规网站优化公司武汉整站网站优化平台东莞企业网站关键词优化多少钱香港通过《维护国家安全条例》两大学生合买彩票中奖一人不认账让美丽中国“从细节出发”19岁小伙救下5人后溺亡 多方发声卫健委通报少年有偿捐血浆16次猝死汪小菲曝离婚始末何赛飞追着代拍打雅江山火三名扑火人员牺牲系谣言男子被猫抓伤后确诊“猫抓病”周杰伦一审败诉网易中国拥有亿元资产的家庭达13.3万户315晚会后胖东来又人满为患了高校汽车撞人致3死16伤 司机系学生张家界的山上“长”满了韩国人?张立群任西安交通大学校长手机成瘾是影响睡眠质量重要因素网友洛杉矶偶遇贾玲“重生之我在北大当嫡校长”单亲妈妈陷入热恋 14岁儿子报警倪萍分享减重40斤方法杨倩无缘巴黎奥运考生莫言也上北大硕士复试名单了许家印被限制高消费奥巴马现身唐宁街 黑色着装引猜测专访95后高颜值猪保姆男孩8年未见母亲被告知被遗忘七年后宇文玥被薅头发捞上岸郑州一火锅店爆改成麻辣烫店西双版纳热带植物园回应蜉蝣大爆发沉迷短剧的人就像掉进了杀猪盘当地回应沈阳致3死车祸车主疑毒驾开除党籍5年后 原水城县长再被查凯特王妃现身!外出购物视频曝光初中生遭15人围殴自卫刺伤3人判无罪事业单位女子向同事水杯投不明物质男子被流浪猫绊倒 投喂者赔24万外国人感慨凌晨的中国很安全路边卖淀粉肠阿姨主动出示声明书胖东来员工每周单休无小长假王树国卸任西安交大校长 师生送别小米汽车超级工厂正式揭幕黑马情侣提车了妈妈回应孩子在校撞护栏坠楼校方回应护栏损坏小学生课间坠楼房客欠租失踪 房东直发愁专家建议不必谈骨泥色变老人退休金被冒领16年 金额超20万西藏招商引资投资者子女可当地高考特朗普无法缴纳4.54亿美元罚金浙江一高校内汽车冲撞行人 多人受伤

深圳坪山网站建设公司 XML地图 TXT地图 虚拟主机 SEO 网站制作 网站优化