欧美bbbwbbbw肥妇,免费乱码人妻系列日韩,一级黄片

Vue使用openlayers加載天地圖

 更新時(shí)間:2024年02月05日 08:52:47   作者:會(huì)說法語的豬  
這篇文章主要為大家詳細(xì)介紹了Vue如何使用openlayers加載天地圖,文中的示例代碼講解詳細(xì),具有一定的借鑒價(jià)值,感興趣的小伙伴可以了解下

申請(qǐng)?zhí)斓貓Dkey

官方:https://www.tianditu.gov.cn/

申請(qǐng)key:https://sso.tianditu.gov.cn/login?service=https%3A%2F%2Fconsole.tianditu.gov.cn%2F

進(jìn)去之后,先登錄,如果沒賬號(hào)先注冊(cè)一個(gè)就行。 

可以創(chuàng)建個(gè)應(yīng)用,創(chuàng)建完成后,會(huì)自動(dòng)生成key。 

安裝ol加載天地圖 

先安裝下 

npm i ol

然后是完整代碼: 

<template>
  <div id="map-container"></div>
</template>
<script>
import { Map, View } from 'ol'
import { Tile as TileLayer } from 'ol/layer'
import { get } from 'ol/proj';
import { getWidth, getTopLeft } from 'ol/extent'
import { WMTS } from 'ol/source'
import WMTSTileGrid from 'ol/tilegrid/WMTS'
 
export const projection = get("EPSG:4326");
const projectionExtent = projection.getExtent();
const size = getWidth(projectionExtent) / 256;
const resolutions = [];
for (let z = 2; z < 19; ++z) {
  resolutions[z] = size / Math.pow(2, z);
}
 
let map;
export default {
  data() {
    return {
 
    }
  },
  mounted(){
    this.initMap('SL') // 加載矢量底圖
    // this.initMap('YX') // 加載影像底圖
    // this.initMap('DX') // 加載地形暈渲
  },
  methods:{
    initMap(layerType = 'SL') {
      const TIANDI_KEY = '31499a6260cb9f29558750d04a934256'
 
      // 對(duì)應(yīng)的值是固定的
      const layerTypeMap = {
        'SL': ['vec', 'cva'], // [矢量底圖, 矢量注記]
        'YX': ['img', 'cia'], // [影像底圖, 影像注記]
        'DX': ['ter', 'cta']  // [地形暈渲, 地形注記]
      }
 
      // c: 經(jīng)緯度投影 w: 球面墨卡托投影
      const matrixSet = 'c'
 
      map = new Map({
        target: 'map-container',
        layers: [
          // 底圖
          new TileLayer({
            source: new WMTS({
              url: `http://t{0-6}.tianditu.com/${layerTypeMap[layerType][0]}_${matrixSet}/wmts?tk=${TIANDI_KEY}`,
              layer: layerTypeMap[layerType][0],
              matrixSet: matrixSet,
              style: "default",
              crossOrigin: 'anonymous', // 解決跨域問題 如無該需求可不添加
              format: "tiles",
              wrapX: true,
              tileGrid: new WMTSTileGrid({
                origin: getTopLeft(projectionExtent),
                //resolutions: res.slice(0, 15),
                resolutions: resolutions,
                matrixIds: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14']
              })
            })
          }),
          // 標(biāo)注
          new TileLayer({
            source: new WMTS({
              url: `http://t{0-6}.tianditu.com/${layerTypeMap[layerType][1]}_${matrixSet}/wmts?tk=${TIANDI_KEY}`,
              layer: layerTypeMap[layerType][1],
              matrixSet: matrixSet,
              style: "default",
              crossOrigin: 'anonymous', // 解決跨域問題 如無該需求可不添加
              format: "tiles",
              wrapX: true,
              tileGrid: new WMTSTileGrid({
                origin: getTopLeft(projectionExtent),
                resolutions: resolutions,
                matrixIds: ['0', '1', '2', '3', '4', '5', '6', '7', '8', '9', '10', '11', '12', '13', '14']
              })
            })
          })
        ],
        view: new View({
          center: [169.40, 65.35],
          projection: projection,
          zoom: 3,
          maxZoom: 17,
          minZoom: 1
        })
      })
    }
  }
}
</script>
<style scoped>
#map-container {
  width: 100%;
  height: 100%;
}
</style>

上面把天地圖密鑰替換成你第一步申請(qǐng)的key就可以。

上面示例加載了三種天地圖:矢量底圖、影像底圖、地形暈渲 

效果圖

下面是效果圖:

矢量底圖 

影像底圖

地形暈渲 

到此這篇關(guān)于Vue使用openlayers加載天地圖的文章就介紹到這了,更多相關(guān)Vue openlayers加載天地圖內(nèi)容請(qǐng)搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • vue--vuex詳解

    vue--vuex詳解

    這篇文章主要介紹了vue--vuex的詳解,文中通過示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧
    2019-04-04
  • vue-cli或vue項(xiàng)目利用HBuilder打包成移動(dòng)端app操作

    vue-cli或vue項(xiàng)目利用HBuilder打包成移動(dòng)端app操作

    這篇文章主要介紹了vue-cli或vue項(xiàng)目利用HBuilder打包成移動(dòng)端app操作,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。一起跟隨小編過來看看吧
    2020-07-07
  • vue中watch和computed為什么能監(jiān)聽到數(shù)據(jù)的改變以及不同之處

    vue中watch和computed為什么能監(jiān)聽到數(shù)據(jù)的改變以及不同之處

    這篇文章主要介紹了vue中watch和computed為什么能監(jiān)聽到數(shù)據(jù)的改變以及不同之處,本文通過實(shí)例代碼給大家介紹的非常詳細(xì),具有一定的參考借鑒價(jià)值,需要的朋友可以參考下
    2019-12-12
  • vue實(shí)現(xiàn)自定義全局右鍵菜單

    vue實(shí)現(xiàn)自定義全局右鍵菜單

    這篇文章主要為大家詳細(xì)介紹了vue實(shí)現(xiàn)自定義全局右鍵菜單,文中示例代碼介紹的非常詳細(xì),具有一定的參考價(jià)值,感興趣的小伙伴們可以參考一下
    2022-04-04
  • 使用elementuiadmin去掉默認(rèn)mock權(quán)限控制的設(shè)置

    使用elementuiadmin去掉默認(rèn)mock權(quán)限控制的設(shè)置

    這篇文章主要介紹了使用elementuiadmin去掉默認(rèn)mock權(quán)限控制的設(shè)置方式,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • 如何利用vue.js實(shí)現(xiàn)拖放功能

    如何利用vue.js實(shí)現(xiàn)拖放功能

    這篇文章主要給大家介紹了如何利用vue.js實(shí)現(xiàn)拖放功能的相關(guān)資料,本文并未使用現(xiàn)有的庫,而是使用內(nèi)置的HTML拖放API來實(shí)現(xiàn)簡單的拖放系統(tǒng),需要的朋友可以參考下
    2021-06-06
  • nextTick能否獲取到最新dom原理解析

    nextTick能否獲取到最新dom原理解析

    這篇文章主要為大家介紹了nextTick能否獲取到最新dom原理解析,有需要的朋友可以借鑒參考下,希望能夠有所幫助,祝大家多多進(jìn)步,早日升職加薪
    2022-11-11
  • vue-drag-resize與輸入框/文本框沖突問題

    vue-drag-resize與輸入框/文本框沖突問題

    這篇文章主要介紹了vue-drag-resize與輸入框/文本框沖突問題,具有很好的參考價(jià)值,希望對(duì)大家有所幫助。如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2023-04-04
  • vue搭建本地JSON靜態(tài)數(shù)據(jù)服務(wù)器全過程

    vue搭建本地JSON靜態(tài)數(shù)據(jù)服務(wù)器全過程

    這篇文章主要介紹了vue搭建本地JSON靜態(tài)數(shù)據(jù)服務(wù)器全過程,具有很好的參考價(jià)值,希望對(duì)大家有所幫助,如有錯(cuò)誤或未考慮完全的地方,望不吝賜教
    2024-07-07
  • vue打印瀏覽器頁面功能的兩種實(shí)現(xiàn)方法

    vue打印瀏覽器頁面功能的兩種實(shí)現(xiàn)方法

    這篇文章主要給大家介紹了關(guān)于vue打印瀏覽器頁面功能的兩種實(shí)現(xiàn)方法,這個(gè)功能其實(shí)也是自己學(xué)習(xí)到的,做完也有一段時(shí)間了,一直想記錄總結(jié)一下,文中通過實(shí)例代碼介紹的非常詳細(xì),需要的朋友可以參考下
    2023-04-04

最新評(píng)論