vue基于Vue2.0和高德地圖的地圖組件實例
前言
在做基于LBS的應(yīng)用中,時常會和地圖打交道,最直接的解決方案,當然是去對應(yīng)的地圖官網(wǎng)找文檔,然后一步步來玩。對于簡單場景而言,體驗應(yīng)該還好,但對于一些狀態(tài)多,變化頻繁的復(fù)雜場景而言,不僅要時刻維護本地數(shù)據(jù)狀態(tài)和地圖狀態(tài)同步,還要查找設(shè)置各種狀態(tài)的地圖API,實在是讓人頭疼的事情。
設(shè)計vue-amap的初衷,也就是為了讓開發(fā)者,在編寫地圖應(yīng)用時,能從查找眾多地圖API和繁瑣的地圖狀態(tài)同步中解脫出來。
那么vue-amap是如何做到的,又能給開發(fā)者帶來怎樣的便利與開發(fā)體驗?zāi)兀课覀兙蛷囊粋€輕點的栗子講起。
產(chǎn)品經(jīng)理說,咱們要搞個地圖,上面給我放N個人,我要時刻知道他們的位置。
安裝
npm install vue-amap --save
引入vue-amap
vue-amap的引入方式很簡單,在入口文件中加入下面內(nèi)容
// 引入vue-amap import AMap from 'vue-amap'; Vue.use(AMap); // 初始化vue-amap AMap.initAMapApiLoader({ // 申請的高德key key: 'YOUR_KEY', // 插件集合 plugin: [''] });
顯示地圖
在模版中加入vue-amap的地圖組件
<el-amap vid="amapDemo"> </el-amap>
給地圖加入N個人
在模版中加入vue-amap的地圖組件
<template> <el-amap vid="amapDemo"> // 添加N個人 <el-amap-marker v-for="marker in markers" :position="marker.position"> </el-amap-marker> </el-amap> </template> <script> export default { data() { return { markers: [] }; }, mounted() { // 姑且N為2 // 這樣地圖上就添加了兩個人 this.markers = [ { position: [121.5273285, 31.21515044] }, { position: [121.5273286, 31.21515045] } ]; } }; </script>
讓N個人動起來
之前我們已經(jīng)將N個人放上去了,關(guān)鍵的時候來了,我們?nèi)绾胃碌貓D狀態(tài)呢?vue-amap支持數(shù)據(jù)的單向綁定,直接更新本地數(shù)據(jù)狀態(tài)即可同步地圖顯示狀態(tài)。
<template> <el-amap vid="amapDemo"> <el-amap-marker v-for="marker in markers" :position="marker.position"> </el-amap-marker> </el-amap> </template> <script> export default { data() { return { markers: [] }; }, mounted() { // 姑且N為2 // 為地圖添加兩個人 this.markers = [ { position: [121.5273285, 31.21515044] }, { position: [121.5273286, 31.21515045] } ]; // 模擬實時更新位置 // 開啟一個1s的輪訓(xùn),每個人的經(jīng)緯度都自增0.00001 const step = 0.00001; setInterval(() => { this.markers.forEach((marker) => { marker.position = [marker.position[0] + step, marker.position[1] + step]; }); }, 1000); } }; </script>
一個簡單的基于vue-amap的地圖應(yīng)用就完成了,有沒有覺得方便很多,我們只要維護好自己本地的數(shù)據(jù)狀態(tài)即可,將具體地圖的API,以及本地數(shù)據(jù)集和地圖狀態(tài)同步問題交給vue-amap負責(zé)就好了。
我們會持續(xù)維護這個項目,同時也希望vue-amap能給更多開發(fā)者帶來開發(fā)效率的提高以及體驗上的舒適。
Github:vue-amap
demo完成下載地址:vue-amap_jb51.rar
以上就是本文的全部內(nèi)容,希望對大家的學(xué)習(xí)有所幫助,也希望大家多多支持腳本之家。
相關(guān)文章
Vue數(shù)據(jù)監(jiān)聽方法watch的使用
這篇文章主要介紹了Vue數(shù)據(jù)監(jiān)聽方法watch的使用,小編覺得挺不錯的,現(xiàn)在分享給大家,也給大家做個參考。一起跟隨小編過來看看吧2018-03-03vue+canvas如何實現(xiàn)根據(jù)數(shù)據(jù)展示不同高度,不同漸變顏色的長方體效果
這篇文章主要介紹了vue+canvas如何實現(xiàn)根據(jù)數(shù)據(jù)展示不同高度,不同漸變顏色的長方體效果,具有很好的參考價值,希望對大家有所幫助,如有錯誤或未考慮完全的地方,望不吝賜教2024-09-09vue 監(jiān)聽是否切屏和開啟小窗的實現(xiàn)過程
這篇文章主要介紹了vue 監(jiān)聽是否切屏和開啟小窗的過程,本文通過實例代碼給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04詳解vuejs2.0 select 動態(tài)綁定下拉框支持多選
這篇文章主要介紹了vuejs2.0 select動態(tài)綁定下拉框 ,文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2019-04-04Vue路由跳轉(zhuǎn)與接收參數(shù)的實現(xiàn)方式
這篇文章主要介紹了Vue路由跳轉(zhuǎn)與接收參數(shù)的實現(xiàn)方式,本文給大家介紹的非常詳細,對大家的學(xué)習(xí)或工作具有一定的參考借鑒價值,需要的朋友可以參考下2023-04-04vue?watch報錯:Error?in?callback?for?watcher?"xxx&qu
這篇文章主要給大家介紹了關(guān)于vue?watch報錯:Error?in?callback?for?watcher?“xxx“:“TypeError:Cannot?read?properties?of?undefined的解決方法,需要的朋友可以參考下2023-03-03vue?長列表數(shù)據(jù)刷新的實現(xiàn)及思考
這篇文章主要為大家介紹了vue?長列表數(shù)據(jù)刷新的實現(xiàn)及思考,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進步,早日升職加薪2023-04-04