vue 地圖可視化 maptalks 篇

Maptalks 項目是一個 HTML5 的地圖引擎, 基於原生 ES6 Javascript 開發: - 二三維一體化地圖, 經過二維地圖的旋轉 /傾斜增長三維視角 - 插件化設計, 能與其餘圖形庫結合, 開發各類二三維效果, 例如 echarts/d3/THREE 等 - 很認真的優化了繪製性能 - 很重視測試, 有接近 1.5K 個單元測試用例, 因此穩定性還不錯, 已經應用在不少大大小小的系統上了css

上面是一段 maptalks 官方介紹,下面來建立工程。首先利用 vue-cli3 搭建一個 SPA 項目,而後寫一段 maptalks 的 HELLO WORLD。若是對 vue 項目的建立比較熟悉,能夠跳過步驟一,直接看步驟二html

 

1、建立工程vue

vue create vue-maptalks

進入工程配置頁面vue-cli

選擇 Manually select featuressass

 

選擇 Babel、Router、Vuex、CSS Pre-processors、Linter / Formatterecharts

 

輸入 ndom

 

選擇 sass/scss函數

 

選擇 ESLint + Airbnb config性能

 

選擇 Lint on save單元測試

 

選擇 In dedicated config files

 

輸入 y,保存本次設置爲模版,下次建立項目直接選擇本次保留的模板。

 

輸入保存的模板名字,進入項目初始化構建,等待構建完成。

完成後,打開瀏覽,輸入 http://localhost:8080/

 

工程建立完成。

 

2、HELLO WORLD

安裝 maptalks

yarn add maptalks

 

刪除 src/App.vue,新建 App.vue,輸入以下代碼

 1 <template>
 2   <div id="map" class="container"></div>
 3 </template>
 4 <script>
 5 import 'maptalks/dist/maptalks.css';
 6 import * as maptalks from 'maptalks';
 7 
 8 export default {
 9   mounted() {
10     this.$nextTick(() => {
11       const map = new maptalks.Map('map', {
12         center: [-0.113049, 51.498568],
13         zoom: 14,
14         baseLayer: new maptalks.TileLayer('base', {
15           urlTemplate: 'http://{s}.basemaps.cartocdn.com/light_all/{z}/{x}/{y}.png',
16           subdomains: ['a', 'b', 'c', 'd'],
17           attribution: '&copy; <a href="http://osm.org">OpenStreetMap</a> contributors, &copy; <a href="https://carto.com/">CARTO</a>',
18         }),
19       });
20       console.log('map: ', map);
21     });
22   },
23 };
24 </script>
25 
26 <style lang="scss">
27 html,body{ margin:0px;height:100%;width:100%; }
28 .container{ width:100%;height:100% }
29 </style>
 地圖初始化,應寫在 nextTick 函數中,以保證掛載點 #map 先於地圖渲染。

 

效果以下:

相關文章
相關標籤/搜索