詳解vue實現(xiàn)坐標拾取器功能示例
需求
1、搜索具體地址,自動填寫經(jīng)緯度,并在地圖上標記

2、點擊地圖上一點,可重新填寫經(jīng)緯度并且標記
代碼
在dom新建div渲染地圖
<el-form-item label="店鋪地址" prop="address"> <el-input v-model="fristForm.address"></el-input> <el-input class="long-lat" v-model="fristForm.longitude" placeholder="經(jīng)度" ></el-input> <el-input class="long-lat" v-model="fristForm.latitude" placeholder="緯度" ></el-input> <el-button size="mini" type="primary" @click="searchKeyword" >搜索</el-button > </el-form-item> <span class="changeAddress">點擊地圖更換分店定位地址</span> <!-- 渲染地圖的div容器 --> <div id="container" class="mapbox"></div>
js定義地圖變量并設(shè)置需求
var searchService,geocoder,map,markersArray = [];
<script>
export default {
mounted() {
this.init();
},
methods:{
init() {
var that = this;
var center = new qq.maps.LatLng(39.916527, 116.397128);
var map = new qq.maps.Map(document.getElementById("container"), {
center: center,
zoom: 13
});
var latlngBounds = new qq.maps.LatLngBounds();
qq.maps.event.addListener(map, "click", function(event) {
console.log(event);
that.fristForm.longitude = event.latLng.getLng(); // 經(jīng)度
that.fristForm.latitude = event.latLng.getLat(); // 緯度
if (markersArray) {
for (let i in markersArray) {
markersArray[i].setMap(null);
}
}
var marker = new qq.maps.Marker({
map: map,
position: event.latLng
});
markersArray.push(marker);
});
geocoder = new qq.maps.Geocoder({
complete: function(result) {
console.log(result);
that.fristForm.longitude = result.detail.location.lng;
that.fristForm.latitude = result.detail.location.lat;
map.setCenter(result.detail.location);
var marker = new qq.maps.Marker({
map: map,
position: result.detail.location
});
markersArray.push(marker);
}
});
},
},
// 搜索地址
searchKeyword() {
var keyword = this.fristForm.address;
this.clearOverlays(markersArray);
//根據(jù)輸入的城市設(shè)置搜索范圍
// searchService.setLocation("北京");
//根據(jù)輸入的關(guān)鍵字在搜索范圍內(nèi)檢索
if (keyword) {
// searchService.search(keyword);
geocoder.getLocation(keyword);
} else {
alert("請輸入地址");
}
},
}
</script>
文檔參考
以上代碼使用的是jsapi功能,目前對應(yīng)功能已升級JavaScript API GL,地址解析功能可直接調(diào)取接口使用,歡迎大家體驗!
地址解析(地址轉(zhuǎn)坐標)
JavaScript API GL參考手冊
到此這篇關(guān)于詳解vue實現(xiàn)坐標拾取器功能示例的文章就介紹到這了,更多相關(guān)vue 坐標拾取器內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!
相關(guān)文章
vue-router路由傳參的兩種方式詳解(params和query)
vue-router 是一個基于vue.js的路由器,它提供了強大的路由功能,能夠幫助開發(fā)者快速構(gòu)建單頁應(yīng)用程序,本文將詳細介紹 vue-router 路由傳參的方法,包括路由傳參的概念、路由傳參的方法、路由傳參的應(yīng)用場景等,需要的朋友可以參考下2024-12-12
Vue中this.$router.push參數(shù)獲取方法
下面小編就為大家分享一篇Vue中this.$router.push參數(shù)獲取方法,具有很好的參考價值,希望對大家有所幫助。一起跟隨小編過來看看吧2018-02-02
關(guān)于Vue中的全局導航守衛(wèi)(beforeEach、afterEach)
這篇文章主要介紹了關(guān)于Vue中的全局導航守衛(wèi)(beforeEach、afterEach),具有很好的參考價值,希望對大家有所幫助。如有錯誤或未考慮完全的地方,望不吝賜教2022-07-07
vue-router 實現(xiàn)導航守衛(wèi)(路由衛(wèi)士)的實例代碼
這篇文章主要介紹了vue-router 實現(xiàn)導航守衛(wèi)(路由衛(wèi)士)的實例代碼,非常不錯,具有一定的參考借鑒價值,需要的朋友可以參考下2018-09-09
unplugin-auto-import的配置以及eslint報錯解決詳解
unplugin-auto-import?解決了vue3-hook、vue-router、useVue等多個插件的自動導入,也支持自定義插件的自動導入,是一個功能強大的typescript支持工具,這篇文章主要給大家介紹了關(guān)于unplugin-auto-import的配置以及eslint報錯解決的相關(guān)資料,需要的朋友可以參考下2022-08-08

