成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久

您的位置:首頁技術文章
文章詳情頁

vue中調用百度地圖獲取經緯度的實現

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

項目中,需要實現獲取當前位置的經緯度,或者搜索某個位置并獲取經緯度信息,我使用的的是vue,地圖使用的是百度地圖。

vue中調用百度地圖獲取經緯度的實現

默認自動獲取當前位置經緯度

vue中調用百度地圖獲取經緯度的實現

拖動小紅標 獲取經緯度

vue中調用百度地圖獲取經緯度的實現

關鍵詞 查詢獲取經緯度

前期準備

首先,我們需要取百度官方申請一個地圖api秘鑰,https://lbsyun.baidu.com/apiconsole/key 進入后在應用管理,我的應用去申請即可。

申請好以后,我們打開vue項目中public文件下的index.html文件,拼接百度AK值并引入

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

如上所示,紅色區域為AK值,自行拼接自己的,可以設置權限為公開或者針對網址白名單。

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

我使用了elementui的彈窗,輸入框,提示,如果你沒使用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='當前緯度'> <p>{{latitude}}</p> </el-form-item> <el-form-item label='當前經度'> <p>{{longitude}}</p> </el-form-item> <el-form-item> <div class='f-a-c'> <el-input v-model='keyWords' placeholder='請輸入地區' 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()' >確 認</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: { // 打開彈窗,name為彈窗名稱 async openDialog(name) {this.text = name;this.popup = true;this.initMap(); }, // 確認 btnSubmit() {let key = { latitude: this.latitude, longitude: this.longitude}// 打印經緯度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); // 開啟鼠標滾輪縮放 this.map.addControl(new BMap.NavigationControl()); this.fixedPos();}); }, // 點擊定位-定位到當前位置 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; //獲取第一個智能搜索的結果 this.map.centerAndZoom(point, 18); this.handleMarker(this, point); console.log('經度:' + point.lng + '--' + '緯度' + point.lat); this.latitude = point.lat; this.longitude = point.lng; } else { this.$message.error('未匹配到地點!'); }} else { this.$message.error('未找到搜索結果!');} }, // 設置標注 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) { // 監聽標注的拖拽,獲取拖拽后的經緯度 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='當前緯度'> <p>{{latitude}}</p> </el-form-item> <el-form-item label='當前經度'> <p>{{longitude}}</p> </el-form-item> <el-form-item> <div class='f-a-c'> <el-input v-model='keyWords' placeholder='請輸入地區' 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()' >確 認</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: { // 打開彈窗,name為彈窗名稱 async openDialog(name) {this.text = name;this.popup = true;this.initMap(); }, // 確認 btnSubmit() {let key = { latitude: this.latitude, longitude: this.longitude}// 打印經緯度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); // 開啟鼠標滾輪縮放 this.map.addControl(new BMap.NavigationControl()); this.fixedPos();}); }, // 點擊定位-定位到當前位置 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; //獲取第一個智能搜索的結果 this.map.centerAndZoom(point, 18); this.handleMarker(this, point); console.log('經度:' + point.lng + '--' + '緯度' + point.lat); this.latitude = point.lat; this.longitude = point.lng; } else { this.$message.error('未匹配到地點!'); }} else { this.$message.error('未找到搜索結果!');} }, // 設置標注 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) { // 監聽標注的拖拽,獲取拖拽后的經緯度 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>

到此這篇關于vue中調用百度地圖獲取經緯度的實現的文章就介紹到這了,更多相關vue調用百度地圖獲取經緯度內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: 百度 地圖
相關文章:
成人在线亚洲_国产日韩视频一区二区三区_久久久国产精品_99国内精品久久久久久久
欧美久久久久中文字幕| 一本色道久久| 日本成人在线看| 国自产拍偷拍福利精品免费一| 欧美一级精品在线| 国产在线精品一区在线观看麻豆| 亚洲深夜福利| 亚洲综合999| 国产一级精品aaaaa看| 中文字幕亚洲视频| 欧美日韩亚洲一区二区三区在线| 精品国产乱码久久久久久老虎| 国产精品18久久久久久久久 | 91麻豆123| 久久这里只有精品6| 99精品视频一区二区| 日韩视频一区二区三区在线播放| 国产+成+人+亚洲欧洲自线| 欧美一级久久久久久久大片| 国产91精品免费| 精品sm捆绑视频| 亚洲欧美一区二区原创| 欧美国产精品v| 欧美日韩精品伦理作品在线免费观看| 国产精品毛片无遮挡高清| 亚洲性视频h| 亚洲激情五月婷婷| 欧美亚洲三区| 看电视剧不卡顿的网站| 91精品国产综合久久久久| 成人小视频免费观看| 久久亚洲精精品中文字幕早川悠里| 欧美在线亚洲| 亚洲免费在线视频一区 二区| 国产精品区一区| 亚洲va欧美va人人爽| 欧美在线|欧美| 国产成人精品一区二区三区四区| 精品国产成人在线影院 | 67194成人在线观看| 东方欧美亚洲色图在线| 久久精品夜色噜噜亚洲a∨| 欧美激情视频一区二区三区免费| 最新不卡av在线| 美脚丝袜一区二区三区在线观看 | 国产麻豆日韩欧美久久| 久久久久国产精品麻豆| 91久久亚洲| 日韩成人dvd| 日韩视频免费观看高清在线视频| 91污片在线观看| 亚洲激情综合网| 欧美日韩综合一区| av高清久久久| 一区二区欧美国产| 欧美吞精做爰啪啪高潮| 成人免费视频app| 国产精品久久看| 久久久青草婷婷精品综合日韩| 国产精品性做久久久久久| 久久精品网站免费观看| 亚洲一区影院| 国产不卡在线视频| 亚洲九九爱视频| 欧美猛男男办公室激情| 欧美区国产区| 日本成人在线网站| 久久久99精品久久| 久久久久一区二区三区| 国产精品亚洲视频| 国产人久久人人人人爽| 国产精品乱子乱xxxx| 久久国产精品99精品国产| 国产午夜精品久久久久久久| 国产女主播一区二区| 国产精品亚洲а∨天堂免在线| 亚洲视频一区在线观看| 欧美剧在线免费观看网站| 欧美日韩免费| 麻豆成人av在线| 国产精品每日更新| 欧美三级日韩在线| 一区在线电影| 国产综合色在线| 亚洲天堂精品视频| 欧美日韩电影一区| 亚洲国产二区| 国产精品1区2区3区| 一区二区三区av电影| 日韩欧美在线影院| 亚洲制服av| 色综合视频在线观看| 美女高潮久久久| 亚洲天堂久久久久久久| 91麻豆精品国产91久久久资源速度 | 国产婷婷色一区二区三区在线| 久久一区激情| 欧美日韩另类丝袜其他| 久久97超碰国产精品超碰| 综合网在线视频| 日韩欧美卡一卡二| 色综合久久天天| 欧美视频四区| 国产精品一区二区视频| 亚洲第一在线综合网站| 久久久久国产一区二区三区四区| 欧美专区日韩专区| 在线观看的日韩av| 成人免费观看av| 日韩精品视频网| 国产精品沙发午睡系列990531| 7777精品伊人久久久大香线蕉完整版| 亚洲精品欧美精品| 欧美.日韩.国产.一区.二区| 国内精品免费**视频| 视频一区二区三区在线| 日韩一区欧美一区| 国产亚洲精品bt天堂精选| 欧美伦理影视网| 久久久久久穴| 日韩一级不卡| 99精品视频一区二区| 精品一区二区免费在线观看| 亚洲一区二区三区激情| 久久久国产精华| 8x福利精品第一导航| 性伦欧美刺激片在线观看| 欧美亚韩一区| 成人av在线影院| 韩国视频一区二区| 爽好多水快深点欧美视频| 国产亚洲美州欧州综合国| 欧美一区二区网站| 欧美亚洲国产一区在线观看网站| 亚洲一区bb| 亚洲美女91| 狠狠色噜噜狠狠狠狠色吗综合| 成人av电影在线| 国产成+人+日韩+欧美+亚洲| 美女视频一区在线观看| 亚洲国产综合人成综合网站| 综合久久久久久| 国产女人18毛片水真多成人如厕| 337p亚洲精品色噜噜| 欧美午夜在线一二页| 另类激情亚洲| 亚洲神马久久| 亚洲激情亚洲| 亚洲午夜久久久久久尤物| 欧美jizzhd精品欧美巨大免费| 国产成人午夜片在线观看高清观看| 精品一区二区三区免费播放| 看电视剧不卡顿的网站| 蜜臀a∨国产成人精品| 亚洲成人先锋电影| 亚洲精品高清在线| ...xxx性欧美| 亚洲欧美在线aaa| 中文字幕永久在线不卡| 国产日产亚洲精品系列| 久久久亚洲精华液精华液精华液| 精品乱码亚洲一区二区不卡| 日韩欧美在线影院| 亚洲精品在线三区| 久久久蜜桃精品| 精品播放一区二区| 久久婷婷成人综合色| 欧美xxxxxxxx| 精品久久久久一区| 日韩精品在线网站| 欧美成人官网二区| 26uuu另类欧美| 久久影院电视剧免费观看| 精品福利二区三区| 国产色一区二区| 欧美国产激情二区三区| 国产免费成人在线视频| 欧美国产成人在线| 中文字幕在线观看一区二区| 综合激情网...| 亚洲国产日韩在线一区模特| 亚洲成av人片一区二区三区| 日韩高清在线观看| 韩国午夜理伦三级不卡影院| 国产盗摄女厕一区二区三区| 丰满白嫩尤物一区二区| 99久久精品国产观看| 欧美.www| 一区二区三区欧美在线| 久久精精品视频| 欧美日韩情趣电影| 欧美一区二区三区白人| 精品国产一区二区国模嫣然| 中文字幕国产一区二区| 成人免费小视频| 亚洲自拍偷拍麻豆| 人人狠狠综合久久亚洲| 国产精品一区二区无线| 91麻豆自制传媒国产之光| 亚洲国产高清一区|