日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當前位置: 首頁 > 前端技术 > vue >内容正文

vue

Vue+Openlayers实现加载天地图WMTS服务显示

發布時間:2025/3/19 vue 36 豆豆
生活随笔 收集整理的這篇文章主要介紹了 Vue+Openlayers实现加载天地图WMTS服务显示 小編覺得挺不錯的,現在分享給大家,幫大家做個參考.

場景

Vue中使用Openlayers加載OSM(Open Street Map)顯示街道地圖:

Vue中使用Openlayers加載OSM(Open Street Map)顯示街道地圖_BADAO_LIUMANG_QIZHI的博客-CSDN博客

上面在Vue中使用Openlayers加載OSM地圖顯示。

如果要加載天地圖顯示流程類似。

天地圖

國家地理信息公共服務平臺

國家地理信息公共服務平臺 天地圖

中國推出了自主開發的網絡地圖服務,旨在與谷歌地球(GoogleEarth)的衛星地圖服務競爭。

“天地圖”是國家測繪地理信息局主導建設的國家地理信息公共服務平臺,

它是“數字中國”的重要組成部分。“天地圖”的目的在于促進地理信息資源共享和高效利用,

提高測繪地理信息公共服務能力和水平,改進測繪地理信息成果的服務方式,更好地滿足國家信息化建設的需要,

為社會公眾的工作和生活提供方便。

注:

博客:
BADAO_LIUMANG_QIZHI的博客_霸道流氓氣質_CSDN博客-C#,SpringBoot,架構之路領域博主
關注公眾號
霸道的程序猿
獲取編程相關電子書、教程推送與免費下載。

實現

1、注冊登錄平臺后,點擊申請key

2、點擊創建新應用

3、輸入應用名稱并提交

4、這樣就能拿到key了

5、項目搭建與基礎依賴引入參照上面的博客

引入相關依賴

import "ol/ol.css"; import Map from "ol/Map"; import TileLayer from "ol/layer/Tile"; import View from "ol/View"; import WMTS from "ol/source/WMTS"; import WMTSTileGrid from "ol/tilegrid/WMTS"; import {get as getProjection} from 'ol/proj.js'; import {getWidth,getTopLeft} from 'ol/extent.js';

6、聲明并新建map

export default {name: "olMapWorldMap",data() {return {map: null,};},mounted() {this.initMap();},methods: {initMap() {this.map = new Map({layers: [],target: "map",view: new View({center: [0, 0],zoom: 2,}),});

7、加載圖層以及參數設置方法可以參考ol官方示例代碼

WMTS

官網示例代碼:

main.js

? import 'ol/ol.css'; import Map from 'ol/Map'; import OSM from 'ol/source/OSM'; import TileLayer from 'ol/layer/Tile'; import View from 'ol/View'; import WMTS from 'ol/source/WMTS'; import WMTSTileGrid from 'ol/tilegrid/WMTS'; import {get as getProjection} from 'ol/proj'; import {getTopLeft, getWidth} from 'ol/extent';const projection = getProjection('EPSG:3857'); const projectionExtent = projection.getExtent(); const size = getWidth(projectionExtent) / 256; const resolutions = new Array(19); const matrixIds = new Array(19); for (let z = 0; z < 19; ++z) {// generate resolutions and matrixIds arrays for this WMTSresolutions[z] = size / Math.pow(2, z);matrixIds[z] = z; }const map = new Map({layers: [new TileLayer({source: new OSM(),}),new TileLayer({opacity: 0.7,source: new WMTS({attributions:'Tiles ? <a href="https://mrdata.usgs.gov/geology/state/"' +' target="_blank">USGS</a>',url: 'https://mrdata.usgs.gov/mapcache/wmts',layer: 'sgmc2',matrixSet: 'GoogleMapsCompatible',format: 'image/png',projection: projection,tileGrid: new WMTSTileGrid({origin: getTopLeft(projectionExtent),resolutions: resolutions,matrixIds: matrixIds,}),style: 'default',wrapX: true,}),}),],target: 'map',view: new View({center: [-11158582, 4813697],zoom: 4,}), });?

index.html

? <!DOCTYPE html> <html lang="en"><head><meta charset="UTF-8"><title>WMTS</title><!-- Pointer events polyfill for old browsers, see Can I use... Support tables for HTML5, CSS3, etc --><script src="https://unpkg.com/elm-pep"></script><!-- The lines below are only needed for old environments like Internet Explorer and Android 4.x --><script src="https://cdn.polyfill.io/v3/polyfill.min.js?features=fetch,requestAnimationFrame,Element.prototype.classList,TextDecoder"></script><script src="https://cdnjs.cloudflare.com/ajax/libs/core-js/3.18.3/minified.js"></script><style>.map {width: 100%;height:400px;}</style></head><body><div id="map" class="map"></div><script src="main.js"></script></body> </html>?

8、參考官方示例代碼的基礎上,修改參數設置以及添加圖層為

?var projection = getProjection("EPSG:3857");var projectionExtent = projection.getExtent();var size = getWidth(projectionExtent) / 256;var resolutions = new Array(18);var matrixIds = new Array(18);for (var z = 1; z < 19; ++z) {// generate resolutions and matrixIds arrays for this WMTSresolutions[z] = size / Math.pow(2, z);matrixIds[z] = z;}var taindiLayer = new TileLayer({opacity: 0.7,source: new WMTS({url: "http://t0.tianditu.gov.cn/vec_w/wmts?tk=你申請的key",layer: "vec", //注意每個圖層這里不同matrixSet: "w",format: "tiles",style: "default",projection: projection,tileGrid: new WMTSTileGrid({origin: getTopLeft(projectionExtent),resolutions: resolutions,matrixIds: matrixIds,}),wrapX: true,}),});this.map.addLayer(taindiLayer);?

注意這里的layer每個url對應的不同,這里引用的是矢量地圖,所以layer是vec

如果是矢量標記,則未cva,如果是影響底圖則是img。

另外其他參數設置也是固定的,可以從官方的示例請求中獲取

http://t0.tianditu.gov.cn/img_w/wmts?request=GetCapabilities&service=wmts

訪問地址后可以看到

9、完整示例代碼

? <template><div id="map" class="map"></div> </template><script> import "ol/ol.css"; import Map from "ol/Map"; import TileLayer from "ol/layer/Tile"; import View from "ol/View"; import WMTS from "ol/source/WMTS"; import WMTSTileGrid from "ol/tilegrid/WMTS"; import { get as getProjection } from "ol/proj.js"; import { getWidth, getTopLeft } from "ol/extent.js"; export default {name: "olMapWorldMap",data() {return {map: null,};},mounted() {this.initMap();},methods: {initMap() {this.map = new Map({layers: [],target: "map",view: new View({center: [0, 0],zoom: 2,}),});var projection = getProjection("EPSG:3857");var projectionExtent = projection.getExtent();var size = getWidth(projectionExtent) / 256;var resolutions = new Array(18);var matrixIds = new Array(18);for (var z = 1; z < 19; ++z) {// generate resolutions and matrixIds arrays for this WMTSresolutions[z] = size / Math.pow(2, z);matrixIds[z] = z;}var taindiLayer = new TileLayer({opacity: 0.7,source: new WMTS({url: "http://t0.tianditu.gov.cn/vec_w/wmts?tk=你申請的key",layer: "vec", //注意每個圖層這里不同matrixSet: "w",format: "tiles",style: "default",projection: projection,tileGrid: new WMTSTileGrid({origin: getTopLeft(projectionExtent),resolutions: resolutions,matrixIds: matrixIds,}),wrapX: true,}),});this.map.addLayer(taindiLayer);},}, }; </script><style scoped> .map {width: 100%;height: 400px; } </style>?

10、加載效果

?

總結

以上是生活随笔為你收集整理的Vue+Openlayers实现加载天地图WMTS服务显示的全部內容,希望文章能夠幫你解決所遇到的問題。

如果覺得生活随笔網站內容還不錯,歡迎將生活随笔推薦給好友。

主站蜘蛛池模板: 日韩精品一区二区视频 | 国产视频在线观看一区 | 少妇的性事hd | 视频区小说区图片区 | 欧美日韩生活片 | 男人的天堂va | 色久月| 日日夜夜操av | 在线视频你懂得 | 免费av入口| www黄色片网站 | 欧美成年人在线观看 | 美日韩精品视频 | 久久精品一区二区免费播放 | 人妻少妇偷人精品久久久任期 | 欧美日韩国产精品一区二区 | 国产在线www| 色玖玖综合 | 久久久久久久久影院 | 欧美一级激情 | 日韩一级二级三级 | 黄色一级一片 | 色呦呦国产 | 久久久精品国产 | 黄wwwww| 国产精品久久久不卡 | 天天操天天操天天操天天操天天操 | 91porn九色 | 97视频免费| 国产精品99久 | 色网址在线 | 国产一级二级在线观看 | 毛片视频免费观看 | 成年人午夜视频 | 午夜不卡久久精品无码免费 | av网站亚洲 | 日本天堂在线播放 | 麻豆影视免费观看 | 日批网站在线观看 | 你懂的国产 | 欧美日韩久久 | 亚洲网站在线免费观看 | 青青草视频污 | 久久毛片| 精品国产一区二区三区日日嗨 | 九一天堂 | 黄网站在线观看视频 | 日韩福利在线视频 | 国产又粗又大又爽 | 欧美日本亚洲 | 午夜影院| 日本大尺度床戏揉捏胸 | 精品人妻一区二区三区久久夜夜嗨 | 亚洲激情影院 | 91传媒视频在线观看 | 26uuu欧美日本 | 国产性色视频 | 一区二区三区韩国 | 日本一级视频 | 亚洲av片一区二区三区 | 久久久婷 | 欧美成人不卡视频 | 欧美在线视频二区 | 天天操天天射天天爱 | 久久久久亚洲AV成人无码国产 | 天天澡天天狠天天天做 | 蘑菇av| 少妇精品久久久一区二区三区 | 成人性生活视频 | 国产亚洲片 | 欧美激情偷拍 | 巨乳xxx | av丝袜在线观看 | 欧美激情福利 | 美女131爽爽爽 | 欧洲丰满少妇做爰 | 久久久久久黄 | 欧美草比视频 | 天天躁日日躁狠狠很躁 | 欧美日韩国产精品 | www.-级毛片线天内射视视 | 最好看十大无码av | 久久女人天堂 | 麻豆精品在线观看 | 精品一卡二卡 | 日本一本二本三区免费 | 97黄色片 | 男人天堂avav | 在线观看成人一区 | 伊人宗合| 99在线播放视频 | 国模私拍在线观看 | 久久久久亚洲AV成人无在 | 无码国产伦一区二区三区视频 | 在线1区| 欧美最猛黑人xxxx | h官场少妇第三部分 | 久久99中文字幕 | 男女搞鸡网站 |