当前位置:   article > 正文

uniapp使用腾讯地图_uniapp 使用腾讯地图

uniapp 使用腾讯地图
  1. <template>
  2. <view>
  3. <button @click="formSubmit">规划路线</button>
  4. <!-- <page-head :title="title"></page-head> -->
  5. <view class="uni-common-mt">
  6. <view>
  7. <map id="myMap" scale='16' show-location :polyline="polyline" :longitude='longitude'
  8. :latitude='latitude'>
  9. </map>
  10. <!--输入起点和目的地经纬度坐标,格式为string格式-->
  11. <!--起点输入框,同终点,不填默认当前位置-->
  12. <!-- <label>起点坐标:<input style="border:1px solid #000;" @blur="startInput"></input></label> -->
  13. <!--终点输入框,例:39.984060,116.307520-->
  14. <!-- <label>终点坐标:<input style="border:1px solid #000;" @blur="endInput"></input></label> -->
  15. <!--提交表单数据-->
  16. <!-- <button @click="formSubmit">路线规划</button> -->
  17. </view>
  18. </view>
  19. </view>
  20. </template>
  21. <script>
  22. import QQMapWX from 'static/js/qqmap-wx-jssdk.min.js';
  23. import {
  24. wgs84_to_gcj02
  25. } from "static/js/wgs84_to_gcj02.js"
  26. import {
  27. VueJsonp
  28. } from 'vue-jsonp'
  29. export default {
  30. data() {
  31. return {
  32. start: '',
  33. dest: '',
  34. qqmapsdk: '',
  35. polyline: '',
  36. longitude: 113.324520,
  37. latitude: 23.099994,
  38. }
  39. },
  40. methods: {
  41. startInput(e) {
  42. console.log(e.detail);
  43. this.start = e.detail.value
  44. },
  45. endInput(e) {
  46. this.dest = e.detail.value
  47. },
  48. formSubmit(e) { //https://apis.map.qq.com/tools/routeplan
  49. let url = 'https://apis.map.qq.com/ws/direction/v1/driving';
  50. this.$jsonp(url, {
  51. key: '64EBZ-RGCWQ-HJ45U-BF4AX-P7LWO-LMFVS',
  52. from: '29.984060,116.307520',
  53. to: '39.984060,116.307420',
  54. output: 'jsonp'
  55. }).then(res => {
  56. var ret = res;
  57. var coors = ret.result.routes[0].polyline,
  58. pl = [];
  59. //坐标解压(返回的点串坐标,通过前向差分进行压缩)
  60. var kr = 1000000;
  61. for (var i = 2; i < coors.length; i++) {
  62. coors[i] = Number(coors[i - 2]) + Number(coors[i]) / kr;
  63. }
  64. //将解压后的坐标放入点串数组pl中
  65. for (var i = 0; i < coors.length; i += 2) {
  66. pl.push({
  67. latitude: coors[i],
  68. longitude: coors[i + 1]
  69. })
  70. }
  71. //转坐标系
  72. // let tmep= wgs84_to_gcj02(Number(longitude),Number(latitude))
  73. console.log(pl)
  74. //设置polyline属性,将路线显示出来,将解压坐标第一个数据作为起点
  75. this.latitude = pl[0].latitude,
  76. this.longitude = pl[0].longitude,
  77. this.polyline = [{
  78. points: pl,
  79. color: '#FF0000DD',
  80. width: 4
  81. }]
  82. })
  83. }
  84. }
  85. }
  86. </script>
  87. <style>
  88. map {
  89. width: 100%;
  90. height: 60vh;
  91. }
  92. </style>

引入qqmap-wx-jssdk.min.js在腾讯地图官网下载

vue-jsonp解决地图跨域问题

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