当前位置:   article > 正文

微信小程序中,使用map,实现获取当前位置和规划起始位置到目标位置的路线_微信小程序的map组件获取当前位置信息和地点名称

微信小程序的map组件获取当前位置信息和地点名称

 在app.json中进行声明

  1. "requiredPrivateInfos": [  
  2.     "getLocation"  
  3.   ] 
  1. <view class="main">
  2. <navigation-bar default-data="{{defaultData}}"></navigation-bar>
  3. <view class="mainBody">
  4. <!-- 在wxml文件中使用map组件 -->
  5. <map id="map" longitude="{{longitude}}" latitude="{{latitude}}" scale="{{scale}}" markers="{{markers}}" polyline="{{polyline}}" show-location style="width: 100%; height: 89vh;"></map>
  6. </view>
  7. </view>
  1. var ports = require("../../../utils/ports.js")
  2. var app = getApp()
  3. Page({
  4. /**
  5. * 页面的初始数据
  6. */
  7. data: {
  8. defaultData: {
  9. title: "校园地图", // 导航栏标题
  10. arrow: true, //是否显示返回箭头
  11. },
  12. query: {},
  13. latitude: '', // 地图中心点纬度
  14. longitude: '', // 地图中心点经度
  15. scale: 14, // 缩放级别,取值范围为3-20
  16. markers: [], // 标记点
  17. polyline: [], // 路线数据,通常是一个包含多个坐标点的数组
  18. endLat:app.endLat,// 终点纬度
  19. endLng:app.endLng,// 终点经度
  20. },
  21. /**
  22. * 生命周期函数--监听页面加载
  23. */
  24. onLoad(options) {
  25. },
  26. // ... 其他代码,包括获取位置、规划路线等
  27. // 当获取到路线数据后,更新polyline数据以在地图上展示路线
  28. updateRouteOnMap(routeData) {
  29. // 将routeData转换为地图组件可以识别的polyline格式
  30. const polyline = []; // 转换后的路线数据
  31. this.setData({
  32. polyline: polyline
  33. });
  34. },
  35. // ... 其他函数和逻辑
  36. /**
  37. * 生命周期函数--监听页面初次渲染完成
  38. */
  39. onReady() {
  40. },
  41. /**
  42. * 生命周期函数--监听页面显示
  43. */
  44. onShow() {
  45. this.getUserLocation()
  46. },
  47. // 获取用户当前坐标
  48. getUserLocation() {
  49. const that=this
  50. wx.getLocation({
  51. type: 'wgs84', // 默认为 wgs84 返回 gps 坐标,gcj02 返回可用于 wx.openLocation 的坐标
  52. success: function (res) {
  53. const latitude = res.latitude; // 纬度,浮点数,范围为-90~90,负数表示南纬
  54. const longitude = res.longitude; // 经度,浮点数,范围为-180~180,负数表示西经
  55. console.log('经度',longitude);
  56. console.log('纬度',latitude);
  57. that.setData({
  58. longitude:longitude,
  59. latitude:latitude,
  60. })
  61. that.planningRoute()
  62. // 这里可以调用规划路线的函数,将当前位置作为起点
  63. },
  64. fail: function (err) {
  65. console.error(err);
  66. }
  67. });
  68. },
  69. // 规划路线
  70. planningRoute() {
  71. // 假设你已经有了起点和终点的坐标
  72. const startLat = this.data.latitude; // 起点纬度
  73. const startLng = this.data.longitude; // 起点经度
  74. const endLat = this.data.endLat; // 终点纬度
  75. const endLng = this.data.endLng; // 终点经度
  76. const that=this
  77. // 注意,你需要再微信公众号后台,配置request合法域名,把https://apis.map.qq.com添加到你的request合法域名中。(微信公众平台—设置—开发设置—服务器域名)。
  78. // 构建请求URL(这里只是一个示例,你需要查看腾讯地图API文档来获取正确的URL和参数)
  79. const url = `https://apis.map.qq.com/ws/direction/v1/driving?origin=${startLat},${startLng}&destination=${endLat},${endLng}&key=${app.TXKey}`;
  80. wx.request({
  81. url: url,
  82. method: 'GET',
  83. success: function (res) {
  84. // 解析返回的路线数据,准备在地图上展示
  85. const routeData = res.data; // 这里是假设的数据结构,具体取决于API返回的内容
  86. console.log('路线数据',routeData);
  87. // if(routeData.status==200){
  88. // that.setData({
  89. // polyline:routeData.
  90. // })
  91. // }
  92. // 将路线数据传递给地图组件或相关函数进行展示
  93. },
  94. fail: function (err) {
  95. console.error(err);
  96. }
  97. });
  98. },
  99. /**
  100. * 生命周期函数--监听页面隐藏
  101. */
  102. onHide() {
  103. },
  104. /**
  105. * 生命周期函数--监听页面卸载
  106. */
  107. onUnload() {
  108. },
  109. /**
  110. * 页面相关事件处理函数--监听用户下拉动作
  111. */
  112. onPullDownRefresh() {
  113. },
  114. /**
  115. * 页面上拉触底事件的处理函数
  116. */
  117. onReachBottom() {
  118. },
  119. /**
  120. * 用户点击右上角分享
  121. */
  122. onShareAppMessage() {
  123. }
  124. })

声明:本文内容由网友自发贡献,不代表【wpsshop博客】立场,版权归原作者所有,本站不承担相应法律责任。如您发现有侵权的内容,请联系我们。转载请注明出处:https://www.wpsshop.cn/w/在线问答5/article/detail/889396
推荐阅读
相关标签
  

闽ICP备14008679号