uniapp 自界说地图组件(根据经纬度展示地图地理位置) ...

打印 上一主题 下一主题

主题 964|帖子 964|积分 2902

目次
一、界说组件(pages/compoent/diy/mapDiy.vue)
二、父页面引入子组件


一、界说组件(pages/compoent/diy/mapDiy.vue)

  1. <template>
  2.         <view class="diy-map" :style="{padding: paddingTop + ' ' + paddingLeft, background: showStyle.background, borderRadius: itemBorderRadius}">
  3.                 <map class="map" :latitude="showParams.latitude" :longitude="showParams.longitude" :style="{height: height}" @click="onClick"></map>
  4.         </view>
  5. </template>
  6. <script>
  7.         export default {
  8.                 name: 'mapDiy',
  9.                 props: ['showStyle', 'showParams'],
  10.                 computed: {
  11.                         itemBorderRadius() {
  12.                                 return uni.upx2px(this.showStyle.itemBorderRadius * 2) + 'px';
  13.                         },
  14.                         height() {
  15.                                 return uni.upx2px(this.showStyle.height * 2) + 'px';
  16.                         },
  17.                         paddingTop() {
  18.                                 return uni.upx2px(this.showStyle.paddingTop * 2) + 'px';
  19.                         },
  20.                         paddingLeft() {
  21.                                 return uni.upx2px(this.showStyle.paddingLeft * 2) + 'px';
  22.                         },
  23.                 },
  24.                 methods: {
  25.                         // 点击事件
  26.                         onClick() {
  27.                                 uni.openLocation({
  28.                                         latitude: parseFloat(this.showParams.latitude),
  29.                                         longitude: parseFloat(this.showParams.longitude),
  30.                                 });
  31.                         }
  32.                 }
  33.         }
  34. </script>
  35. <style lang="scss">
  36.         .diy-map .map {
  37.                 width: 100%;
  38.         }
  39. </style>
复制代码
二、父页面引入子组件



  •   写一个按钮获取当前地理位置
  1.         
  2.        <!-- 获取当前位置按钮 -->
  3.         <button @click="getCurrentLocation">获取当前位置</button>
  4.         <!-- 地图展示区域 -->
  5.         <map-diy v-if="showMap" :showParams="mapParams" :showStyle="mapStyle"></map-diy>
复制代码


  •  引入组件
  1. import mapDiy from "@/pages/component/diy/mapDiy.vue";
  2. export default {
  3.   components: {
  4.     articleItem,
  5.     mapDiy,
  6.   },
  7.   data() {
  8.     return {
  9.       showMap: false, // 是否显示地图
  10.       mapParams: { latitude: '', longitude: '' }, // 地图的经纬度参数
  11.       mapStyle: { height: 300, background: '#fff', paddingTop: 10,itemBorderRadius: 8 } // 地图样式
  12.     };
  13.   },
  14. methods: {
  15.      // 获取当前位置信息并显示地图
  16.      getCurrentLocation() {
  17.       wx.getLocation({
  18.         type: 'wgs84', // 获取GPS定位的经纬度
  19.         success: (res) => {
  20.           const latitude = res.latitude;
  21.           const longitude = res.longitude;
  22.           // 更新地图参数并显示地图
  23.           this.mapParams = { latitude, longitude };
  24.           this.showMap = true; // 显示地图
  25.         },
  26.         fail: (error) => {
  27.           wx.showToast({
  28.             title: '无法获取位置,请检查权限',
  29.             icon: 'none'
  30.           });
  31.         }
  32.       });
  33.     },
复制代码


免责声明:如果侵犯了您的权益,请联系站长,我们会及时删除侵权内容,谢谢合作!更多信息从访问主页:qidao123.com:ToB企服之家,中国第一个企服评测及商务社交产业平台。
回复

使用道具 举报

0 个回复

倒序浏览

快速回复

您需要登录后才可以回帖 登录 or 立即注册

本版积分规则

泉缘泉

金牌会员
这个人很懒什么都没写!
快速回复 返回顶部 返回列表