国产成人精品久久免费动漫-国产成人精品天堂-国产成人精品区在线观看-国产成人精品日本-a级毛片无码免费真人-a级毛片毛片免费观看久潮喷

您的位置:首頁(yè)技術(shù)文章
文章詳情頁(yè)

vue中調(diào)用百度地圖獲取經(jīng)緯度的實(shí)現(xiàn)

瀏覽:143日期:2022-07-19 08:43:07

項(xiàng)目中,需要實(shí)現(xiàn)獲取當(dāng)前位置的經(jīng)緯度,或者搜索某個(gè)位置并獲取經(jīng)緯度信息,我使用的的是vue,地圖使用的是百度地圖。

vue中調(diào)用百度地圖獲取經(jīng)緯度的實(shí)現(xiàn)

默認(rèn)自動(dòng)獲取當(dāng)前位置經(jīng)緯度

vue中調(diào)用百度地圖獲取經(jīng)緯度的實(shí)現(xiàn)

拖動(dòng)小紅標(biāo) 獲取經(jīng)緯度

vue中調(diào)用百度地圖獲取經(jīng)緯度的實(shí)現(xiàn)

關(guān)鍵詞 查詢獲取經(jīng)緯度

前期準(zhǔn)備

首先,我們需要取百度官方申請(qǐng)一個(gè)地圖api秘鑰,https://lbsyun.baidu.com/apiconsole/key 進(jìn)入后在應(yīng)用管理,我的應(yīng)用去申請(qǐng)即可。

申請(qǐng)好以后,我們打開(kāi)vue項(xiàng)目中public文件下的index.html文件,拼接百度AK值并引入

<script type='text/javascript' src='http://api.map.baidu.com/api?v=2.0&ak=WFKACU6v7aiUdnkgtMCqdWBZC68KpUXv'></script>

如上所示,紅色區(qū)域?yàn)锳K值,自行拼接自己的,可以設(shè)置權(quán)限為公開(kāi)或者針對(duì)網(wǎng)址白名單。

<script type='text/javascript' src='http://api.map.baidu.com/api?v=2.0&ak=WFKACU6v7aiUdnkgtMCqdWBZC68KpUXv'></script>

我使用了elementui的彈窗,輸入框,提示,如果你沒(méi)使用elementui,記得更換哦!

HTML代碼

<template> <div> <el-dialog @close='clearDialog' :close-on-click-modal='false' :title='text' :visible.sync='popup' > <div class='form-layer'><el-form label- size='mini'> <el-form-item label='獲取定位'> <el-button type='primary' @click='fixedPos'>重新定位</el-button> </el-form-item> <el-form-item label='當(dāng)前緯度'> <p>{{latitude}}</p> </el-form-item> <el-form-item label='當(dāng)前經(jīng)度'> <p>{{longitude}}</p> </el-form-item> <el-form-item> <div class='f-a-c'> <el-input v-model='keyWords' placeholder='請(qǐng)輸入地區(qū)' style='width: 230px;margin-right: 6px;'></el-input> <el-button type='primary' @click='setPlace' :disabled='!keyWords'>查詢</el-button> </div> </el-form-item></el-form><div id='map'></div> </div> <div slot='footer' class='dialog-footer'><el-button size='small' type='primary' v-if='type != ’2’' @click='btnSubmit()' >確 認(rèn)</el-button><el-button size='small' @click='popup = false'>取 消</el-button> </div> </el-dialog> </div></template>

JS代碼

<script> export default { name: 'mapView', data() { return {map: null,local: null,mk: null,latitude: ’’,longitude: ’’,keyWords: ’’ }; }, methods: { // 打開(kāi)彈窗,name為彈窗名稱 async openDialog(name) {this.text = name;this.popup = true;this.initMap(); }, // 確認(rèn) btnSubmit() {let key = { latitude: this.latitude, longitude: this.longitude}// 打印經(jīng)緯度console.log(key);this.popup = false; }, initMap() {this.$nextTick(() => { this.map = new BMap.Map('map'); let point = new BMap.Point(116.404, 39.915); this.map.centerAndZoom(point, 12); this.map.enableScrollWheelZoom(true); // 開(kāi)啟鼠標(biāo)滾輪縮放 this.map.addControl(new BMap.NavigationControl()); this.fixedPos();}); }, // 點(diǎn)擊定位-定位到當(dāng)前位置 fixedPos() {const _this = this;const geolocation = new BMap.Geolocation();this.confirmLoading = true;geolocation.getCurrentPosition(function (r) { if (this.getStatus() == BMAP_STATUS_SUCCESS) { _this.handleMarker(_this, r.point); let myGeo = new BMap.Geocoder(); myGeo.getLocation( new BMap.Point(r.point.lng, r.point.lat), function (result) {_this.confirmLoading = false;if (result) { _this.latitude = result.point.lat; _this.longitude = result.point.lng;} } ); } else { _this.$message.error('failed' + this.getStatus()); }}); }, // 搜索地址 setPlace() {this.local = new BMap.LocalSearch(this.map, { onSearchComplete: this.searchPlace,});this.local.search(this.keyWords); }, searchPlace() {if (this.local.getResults() != undefined) { this.map.clearOverlays(); //清除地圖上所有覆蓋物 if (this.local.getResults().getPoi(0)) { let point = this.local.getResults().getPoi(0).point; //獲取第一個(gè)智能搜索的結(jié)果 this.map.centerAndZoom(point, 18); this.handleMarker(this, point); console.log('經(jīng)度:' + point.lng + '--' + '緯度' + point.lat); this.latitude = point.lat; this.longitude = point.lng; } else { this.$message.error('未匹配到地點(diǎn)!'); }} else { this.$message.error('未找到搜索結(jié)果!');} }, // 設(shè)置標(biāo)注 handleMarker(obj, point) {let that = this;obj.mk = new BMap.Marker(point);obj.map.addOverlay(obj.mk);obj.mk.enableDragging(); // 可拖拽obj.mk.addEventListener('dragend', function (e) { // 監(jiān)聽(tīng)標(biāo)注的拖拽,獲取拖拽后的經(jīng)緯度 that.latitude = e.point.lat; that.longitude = e.point.lng;});obj.map.panTo(point); }, } };</script>

CSS代碼

<style scoped> .form-layer { width: 100%; } #map { margin-top: 30px; width: 100%; height: 300px; border: 1px solid gray; box-sizing: border-box; overflow: hidden; } /deep/ .el-dialog { min-width: 550px; } /deep/ .el-dialog__body { padding: 10px; }</style>

完整代碼

<template> <div> <el-dialog @close='clearDialog' :close-on-click-modal='false' :title='text' :visible.sync='popup' > <div class='form-layer'><el-form label- size='mini'> <el-form-item label='獲取定位'> <el-button type='primary' @click='fixedPos'>重新定位</el-button> </el-form-item> <el-form-item label='當(dāng)前緯度'> <p>{{latitude}}</p> </el-form-item> <el-form-item label='當(dāng)前經(jīng)度'> <p>{{longitude}}</p> </el-form-item> <el-form-item> <div class='f-a-c'> <el-input v-model='keyWords' placeholder='請(qǐng)輸入地區(qū)' style='width: 230px;margin-right: 6px;'></el-input> <el-button type='primary' @click='setPlace' :disabled='!keyWords'>查詢</el-button> </div> </el-form-item></el-form><div id='map'></div> </div> <div slot='footer' class='dialog-footer'><el-button size='small' type='primary' v-if='type != ’2’' @click='btnSubmit()' >確 認(rèn)</el-button><el-button size='small' @click='popup = false'>取 消</el-button> </div> </el-dialog> </div></template><script> export default { name: 'mapView', data() { return {map: null,local: null,mk: null,latitude: ’’,longitude: ’’,keyWords: ’’ }; }, methods: { // 打開(kāi)彈窗,name為彈窗名稱 async openDialog(name) {this.text = name;this.popup = true;this.initMap(); }, // 確認(rèn) btnSubmit() {let key = { latitude: this.latitude, longitude: this.longitude}// 打印經(jīng)緯度console.log(key);this.popup = false; }, initMap() {this.$nextTick(() => { this.map = new BMap.Map('map'); let point = new BMap.Point(116.404, 39.915); this.map.centerAndZoom(point, 12); this.map.enableScrollWheelZoom(true); // 開(kāi)啟鼠標(biāo)滾輪縮放 this.map.addControl(new BMap.NavigationControl()); this.fixedPos();}); }, // 點(diǎn)擊定位-定位到當(dāng)前位置 fixedPos() {const _this = this;const geolocation = new BMap.Geolocation();this.confirmLoading = true;geolocation.getCurrentPosition(function (r) { if (this.getStatus() == BMAP_STATUS_SUCCESS) { _this.handleMarker(_this, r.point); let myGeo = new BMap.Geocoder(); myGeo.getLocation( new BMap.Point(r.point.lng, r.point.lat), function (result) {_this.confirmLoading = false;if (result) { _this.latitude = result.point.lat; _this.longitude = result.point.lng;} } ); } else { _this.$message.error('failed' + this.getStatus()); }}); }, // 搜索地址 setPlace() {this.local = new BMap.LocalSearch(this.map, { onSearchComplete: this.searchPlace,});this.local.search(this.keyWords); }, searchPlace() {if (this.local.getResults() != undefined) { this.map.clearOverlays(); //清除地圖上所有覆蓋物 if (this.local.getResults().getPoi(0)) { let point = this.local.getResults().getPoi(0).point; //獲取第一個(gè)智能搜索的結(jié)果 this.map.centerAndZoom(point, 18); this.handleMarker(this, point); console.log('經(jīng)度:' + point.lng + '--' + '緯度' + point.lat); this.latitude = point.lat; this.longitude = point.lng; } else { this.$message.error('未匹配到地點(diǎn)!'); }} else { this.$message.error('未找到搜索結(jié)果!');} }, // 設(shè)置標(biāo)注 handleMarker(obj, point) {let that = this;obj.mk = new BMap.Marker(point);obj.map.addOverlay(obj.mk);obj.mk.enableDragging(); // 可拖拽obj.mk.addEventListener('dragend', function (e) { // 監(jiān)聽(tīng)標(biāo)注的拖拽,獲取拖拽后的經(jīng)緯度 that.latitude = e.point.lat; that.longitude = e.point.lng;});obj.map.panTo(point); }, } };</script><style scoped> .form-layer { width: 100%; } #map { margin-top: 30px; width: 100%; height: 300px; border: 1px solid gray; box-sizing: border-box; overflow: hidden; } /deep/ .el-dialog { min-width: 550px; } /deep/ .el-dialog__body { padding: 10px; }</style>

到此這篇關(guān)于vue中調(diào)用百度地圖獲取經(jīng)緯度的實(shí)現(xiàn)的文章就介紹到這了,更多相關(guān)vue調(diào)用百度地圖獲取經(jīng)緯度內(nèi)容請(qǐng)搜索好吧啦網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持好吧啦網(wǎng)!

標(biāo)簽: 百度 地圖
相關(guān)文章:
主站蜘蛛池模板: 成人毛片国产a | 国产片一级aaa毛片视频 | 亚洲精品456在线播放无广告 | 精品视频亚洲 | 鲁一鲁色一色 | 欧美日韩中文一区二区三区 | 成人黄色免费网站 | 99免费在线观看视频 | 亚洲免费影院 | 久久精品亚洲一区二区 | 国产一区高清 | 久久精品免观看国产成人 | 国产成人毛片亚洲精品不卡 | 日韩特级毛片 | 91香蕉国产在线观看免费永久 | 欧美久久久久 | 久章草在线 | 国产精品亚洲一区二区在线观看 | 亚洲欧美日韩一区 | 成人看片黄a在线观看 | 理论片我不卡在线观看 | 性成人动作片在线看 | 亚洲一区区 | 亚洲免费视频在线 | 亚洲精品国产福利 | 日本久操 | 视频一区二区三区自拍 | 日韩欧美一区二区三区在线 | 久久99精品这里精品3 | 免费的成人a视频在线观看 免费的毛片 | 亚洲成人在线视频网站 | 日韩欧美一级毛片精品6 | 亚洲黄色三级网站 | 玖玖这里只有精品 | 国产精品美女久久久久网站 | 免费一级毛片在线播放不收费 | 天干夜天天夜天干天ww | 日本一区不卡视频 | 欧美视频一区二区三区四区 | 免费视频毛片 | 亚洲在线观看网站 |