<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
這段時間在開發uniapp的時候使用到map元件
總結一下本次在uniapp中使用map遇到的一些問題
文章分別是基礎 定點陣圖示 獲取自身經緯度 通過經緯度獲取當時城市資訊
廢話不多說,直接開始。
首先引入map元件
<template> <view class="content"> <map style="width: 100%; height: 90vh;" :layer-style='5' :style="{height:mapheight}" :show-location='true' :latitude="latitude" :longitude="longitude" :markers="marker" :scale="scale" @markertap="markertap" @callouttap='callouttap'> </map> </view> </template> <script> export default { data() { return { latitude:23.106574, //緯度 longitude:113.324587,//經度 scale:13,//縮放級別 bottomData:false, marker: [ { id:0, latitude: 23.13065,//緯度 longitude: 113.3274,//經度 iconPath: '', //顯示的圖示 rotate:0, // 旋轉度數 width:20, //寬 height:30, //高 // title:'我在這裡',//標註點名 alpha:0.5, //透明度 callout:{//自定義標記點上方的氣泡視窗 點選有效 content:'天寶大廈',//文字 color:'#ffffff',//文字顏色 fontSize:14,//文字大小 borderRadius:15,//邊框圓角 borderWidth:'10', bgColor:'#e51860',//背景顏色 display:'ALWAYS',//常顯 }, }, { id:1234597, latitude: 23.106574,//緯度 longitude: 113.324587,//經度 iconPath: '', //顯示的圖示 rotate:0, // 旋轉度數 width:20, //寬 height:30, //高 // title:'我在這裡',//標註點名 alpha:0.5, //透明度 // label:{//為標記點旁邊增加標籤 //因背景顏色H5不支援 // color:'red',//文字顏色 // }, callout:{//自定義標記點上方的氣泡視窗 點選有效 content:'廣州塔',//文字 color:'#ffffff',//文字顏色 fontSize:14,//文字大小 borderRadius:15,//邊框圓角 borderWidth:'10', bgColor:'#e51860',//背景顏色 display:'ALWAYS',//常顯 }, }, { id:2, latitude: 23.1338,//緯度 longitude: 113.33052,//經度 iconPath: '', //顯示的圖示 rotate:0, // 旋轉度數 width:20, //寬 height:30, //高 alpha:0.5, //透明度 callout:{//自定義標記點上方的氣泡視窗 點選有效 content:'德隆大廈',//文字 color:'#ffffff',//文字顏色 fontSize:14,//文字大小 borderRadius:15,//邊框圓角 borderWidth:'10', bgColor:'#e51860',//背景顏色 display:'ALWAYS',//常顯 }, }, { id:3, latitude: 23.136455,//緯度 longitude: 113.329002,//經度 iconPath: '', //顯示的圖示 rotate:0, // 旋轉度數 width:20, //寬 height:30, //高 alpha:0.5, //透明度 callout:{//自定義標記點上方的氣泡視窗 點選有效 content:'羊城國際商貿中心',//文字 color:'#ffffff',//文字顏色 fontSize:14,//文字大小 borderRadius:15,//邊框圓角 borderWidth:'10', bgColor:'#e51860',//背景顏色 display:'ALWAYS',//常顯 }, }, { id:4, latitude: 23.224781,//緯度 longitude: 113.293911,//經度 iconPath: '', //顯示的圖示 rotate:0, // 旋轉度數 width:20, //寬 height:30, //高 alpha:0.5, //透明度 callout:{//自定義標記點上方的氣泡視窗 點選有效 content:'天瑞廣場A座',//文字 color:'#ffffff',//文字顏色 fontSize:16,//文字大小 borderRadius:15,//邊框圓角 borderWidth:'12', bgColor:'#e51860',//背景顏色 display:'ALWAYS',//常顯 }, }, { id:5, latitude: 23.072726,//緯度 longitude: 113.277921,//經度 iconPath: '', //顯示的圖示 rotate:0, // 旋轉度數 width:20, //寬 height:30, //高 alpha:0.5, //透明度 callout:{//自定義標記點上方的氣泡視窗 點選有效 content:'大米和小米兒童康復(廣州盈豐)中心',//文字 color:'#ffffff',//文字顏色 fontSize:14,//文字大小 borderRadius:15,//邊框圓角 borderWidth:'8', bgColor:'#e51860',//背景顏色 display:'ALWAYS',//常顯 }, }, ], } }, onLoad() { }, computed:{ mapheight(){ let data ='' if(this.bottomData){ if(this.upTop){ data ='50px' }else{ data ='200px' } }else{ data ='90vh' } return data }, coverbottom(){ let data ='' if(this.bottomData){ data ='20rpx' }else{ data ='100rpx' } return data } }, methods:{ //地圖點選事件 markertap(e) { console.log("===你點選了標記點===",e) }, //地圖點選事件 callouttap(e){ console.log('地圖點選事件',e) } } } </script>
得到的樣式是這樣
這裡只給了兩個回撥 有更多需求可以去uniapp中搜尋 map | uni-app官網
查了一下官方檔案,發現官方檔案中並沒有關於定位的寫法 ,沒辦法只能自己手寫一個了。
大概是這樣的。
<template> <view class="page-section page-section-gap map-container"> <map style="width: 100%; height: 90vh;" :layer-style='5' :style="{height:mapheight}" :show-location='true' :latitude="latitude" :longitude="longitude" :markers="marker" :scale="scale" @markertap="markertap" @callouttap='callouttap'> <cover-view class="cover-view" :style='{bottom:coverbottom}' @click="onControltap"> <cover-image class="cover-image" @click="play" src="@/static/ditudingwei.png"></cover-image> <cover-view> 定位 </cover-view> </cover-view> </map> </view> </template> <script> export default { data() { return { latitude:23.106574, //緯度 longitude:113.324587,//經度 scale:13,//縮放級別 bottomData:false, marker: [ { id:0, latitude: 23.13065,//緯度 longitude: 113.3274,//經度 iconPath: '', //顯示的圖示 rotate:0, // 旋轉度數 width:20, //寬 height:30, //高 // title:'我在這裡',//標註點名 alpha:0.5, //透明度 callout:{//自定義標記點上方的氣泡視窗 點選有效 content:'天寶大廈',//文字 color:'#ffffff',//文字顏色 fontSize:14,//文字大小 borderRadius:15,//邊框圓角 borderWidth:'10', bgColor:'#e51860',//背景顏色 display:'ALWAYS',//常顯 }, }, { id:1234597, latitude: 23.106574,//緯度 longitude: 113.324587,//經度 iconPath: '', //顯示的圖示 rotate:0, // 旋轉度數 width:20, //寬 height:30, //高 // title:'我在這裡',//標註點名 alpha:0.5, //透明度 // label:{//為標記點旁邊增加標籤 //因背景顏色H5不支援 // color:'red',//文字顏色 // }, callout:{//自定義標記點上方的氣泡視窗 點選有效 content:'廣州塔',//文字 color:'#ffffff',//文字顏色 fontSize:14,//文字大小 borderRadius:15,//邊框圓角 borderWidth:'10', bgColor:'#e51860',//背景顏色 display:'ALWAYS',//常顯 }, }, { id:2, latitude: 23.1338,//緯度 longitude: 113.33052,//經度 iconPath: '', //顯示的圖示 rotate:0, // 旋轉度數 width:20, //寬 height:30, //高 alpha:0.5, //透明度 callout:{//自定義標記點上方的氣泡視窗 點選有效 content:'德隆大廈',//文字 color:'#ffffff',//文字顏色 fontSize:14,//文字大小 borderRadius:15,//邊框圓角 borderWidth:'10', bgColor:'#e51860',//背景顏色 display:'ALWAYS',//常顯 }, }, { id:3, latitude: 23.136455,//緯度 longitude: 113.329002,//經度 iconPath: '', //顯示的圖示 rotate:0, // 旋轉度數 width:20, //寬 height:30, //高 alpha:0.5, //透明度 callout:{//自定義標記點上方的氣泡視窗 點選有效 content:'羊城國際商貿中心',//文字 color:'#ffffff',//文字顏色 fontSize:14,//文字大小 borderRadius:15,//邊框圓角 borderWidth:'10', bgColor:'#e51860',//背景顏色 display:'ALWAYS',//常顯 }, }, { id:4, latitude: 23.224781,//緯度 longitude: 113.293911,//經度 iconPath: '', //顯示的圖示 rotate:0, // 旋轉度數 width:20, //寬 height:30, //高 alpha:0.5, //透明度 callout:{//自定義標記點上方的氣泡視窗 點選有效 content:'天瑞廣場A座',//文字 color:'#ffffff',//文字顏色 fontSize:16,//文字大小 borderRadius:15,//邊框圓角 borderWidth:'12', bgColor:'#e51860',//背景顏色 display:'ALWAYS',//常顯 }, }, { id:5, latitude: 23.072726,//緯度 longitude: 113.277921,//經度 iconPath: '', //顯示的圖示 rotate:0, // 旋轉度數 width:20, //寬 height:30, //高 alpha:0.5, //透明度 callout:{//自定義標記點上方的氣泡視窗 點選有效 content:'大米和小米兒童康復(廣州盈豐)中心',//文字 color:'#ffffff',//文字顏色 fontSize:14,//文字大小 borderRadius:15,//邊框圓角 borderWidth:'8', bgColor:'#e51860',//背景顏色 display:'ALWAYS',//常顯 }, }, ], } }, onLoad() { }, computed:{ mapheight(){ let data ='' if(this.bottomData){ if(this.upTop){ data ='50px' }else{ data ='200px' } }else{ data ='90vh' } return data }, coverbottom(){ let data ='' if(this.bottomData){ data ='20rpx' }else{ data ='100rpx' } return data } }, methods:{ //地圖點選事件 markertap(e) { console.log("===你點選了標記點===",e) }, //地圖點選事件 callouttap(e){ console.log('地圖點選事件',e) } } } </script> <style lang='less' scoped> .map-container { position: relative; overflow: hidden; .cover-view { display: flex; flex-direction: column; align-items: center; justify-content: center; width: 80rpx; height: 80rpx; color: #484848; background-color: #fff; background-size: 120rpx 120rpx; background-position: center center; position: absolute; bottom: 100rpx; right: 32rpx; } .cover-image{ display: inline-block; width: 30rpx; height: 30rpx; } } </style>
進入頁面拿到使用者自身的經緯度
在onShow中輸入
onShow() { uni.getLocation({ geocode:true, type: 'wgs84', success: (res) => { console.log(res,'獲取當前位置') }, address:(res) =>{ console.log('address',res) } });
需要開啟manifest.json
如果從來沒設定過appld請先設定在進行操作
然後重新編譯就會出現
允許之後就可以拿到經緯度資訊
然後可以將經緯度資訊賦值給data中的latitude longitude
onShow() { uni.getLocation({ geocode:true, type: 'wgs84', success: (res) => { console.log(res,'獲取當前位置') this.longitude =res.longitude this.latitude = res.latitude }, address:(res) =>{ console.log('address',res) } }); },
首先需要進入騰訊位置服務 /控制檯/應用管理/我的應用/新增key選擇webServiceApi
然後去小程式開發管理/開發設定/伺服器域名/request合法域名後面新增
https://apis.map.qq.com;
然後下載
https://mapapi.qq.com/web/miniprogram/JSSDK/qqmap-wx-jssdk1.1.zip
引入
在ohshow中使用
var qqmapsdk // 範例化API核心類 qqmapsdk = new QQMapWX({ key: '建立的key' }); qqmapsdk.reverseGeocoder({ location:{ latitude:this.latitude, longitude:this.longitude }, success:(res)=>{ console.log('reverseGeocoder',res) }, fail:(err)=>{ console.log('reverseGeocoder',err) } })
這樣就可以通過自身的經緯度獲取到當前所在的詳細資訊
更多地圖事件可以查詢官網騰訊位置服務 - 立足生態,連線未來
關於地圖氣泡彈窗在真機不顯示或者顯示顏色不明顯的情況,你可以使用在callout中使用padding
這樣就可以顯示顏色了
在uniapp中使用地圖大概就這些
到此這篇關於uniapp地圖元件(map)使用與遇到的一些問題總結的文章就介紹到這了,更多相關uniapp地圖元件(map)使用內容請搜尋it145.com以前的文章或繼續瀏覽下面的相關文章希望大家以後多多支援it145.com!
相關文章
<em>Mac</em>Book项目 2009年学校开始实施<em>Mac</em>Book项目,所有师生配备一本<em>Mac</em>Book,并同步更新了校园无线网络。学校每周进行电脑技术更新,每月发送技术支持资料,极大改变了教学及学习方式。因此2011
2021-06-01 09:32:01
综合看Anker超能充系列的性价比很高,并且与不仅和iPhone12/苹果<em>Mac</em>Book很配,而且适合多设备充电需求的日常使用或差旅场景,不管是安卓还是Switch同样也能用得上它,希望这次分享能给准备购入充电器的小伙伴们有所
2021-06-01 09:31:42
除了L4WUDU与吴亦凡已经多次共事,成为了明面上的厂牌成员,吴亦凡还曾带领20XXCLUB全队参加2020年的一场音乐节,这也是20XXCLUB首次全员合照,王嗣尧Turbo、陈彦希Regi、<em>Mac</em> Ova Seas、林渝植等人全部出场。然而让
2021-06-01 09:31:34
目前应用IPFS的机构:1 谷歌<em>浏览器</em>支持IPFS分布式协议 2 万维网 (历史档案博物馆)数据库 3 火狐<em>浏览器</em>支持 IPFS分布式协议 4 EOS 等数字货币数据存储 5 美国国会图书馆,历史资料永久保存在 IPFS 6 加
2021-06-01 09:31:24
开拓者的车机是兼容苹果和<em>安卓</em>,虽然我不怎么用,但确实兼顾了我家人的很多需求:副驾的门板还配有解锁开关,有的时候老婆开车,下车的时候偶尔会忘记解锁,我在副驾驶可以自己开门:第二排设计很好,不仅配置了一个很大的
2021-06-01 09:30:48
不仅是<em>安卓</em>手机,苹果手机的降价力度也是前所未有了,iPhone12也“跳水价”了,发布价是6799元,如今已经跌至5308元,降价幅度超过1400元,最新定价确认了。iPhone12是苹果首款5G手机,同时也是全球首款5nm芯片的智能机,它
2021-06-01 09:30:45