vue+openlayers示例:適配arcgis矢量瓦片服務以及樣式(附源碼下載)

由于單位這邊有個項目是基于openlayers地圖引擎框架實現webgis地圖可視化功能,但是要調用第三方的arcgis矢量瓦片服務以及適配樣式,在這個背景下,基于openlayers+vue實現適配arcgis矢量瓦片服務以及樣式效果,適合學習openlayers與前端框架結合webgis開發可視化項目。

備注:由于地圖服務數據保密性以及局域網性質,源碼里面的矢量瓦片服務地址都是訪問不到的,真正運用要自行替換修改自己實際的矢量瓦片服務地址。

demo源碼運行環境以及配置

運行環境:依賴Node安裝環境,demo本地Node版本:推薦v18+。

運行工具:vscode或者其他工具。

配置方式:下載demo源碼,vscode打開,然后順序執行以下命令:
(1)下載demo環境依賴包命令:npm install
(2)啟動demo命令:npm run dev
(3)打包demo命令: npm run build

技術棧

Vue 3.3.9

Vite 5.0.4

ol 10.6.1

示例效果
在這里插入圖片描述
核心源碼

<template><div id="map" class="map-container"></div>
</template>
<script setup>
import { onMounted } from 'vue';
import 'ol/ol.css';
import Map from 'ol/Map.js';
import View from 'ol/View.js';
import MVT from 'ol/format/MVT.js';
import VectorTileSource from 'ol/source/VectorTile.js';
import WebGLTileLayer from 'ol/layer/WebGLTile.js';
import Source from 'ol/source/ImageTile.js';
import VectorTileLayer from 'ol/layer/VectorTile.js';
import { fromLonLat } from 'ol/proj';
const accessToken = 'a1ae7c4c6e7c525adda2aeeb9928a7fa54e425d46c4f2338f93df06307652331';
const parcelsStyle = {……} // 由于樣式過長,具體見完整的源碼demo
onMounted(() => {const parcelsSource = new VectorTileSource({format: new MVT(),// url: `https://vectortileservices3.arcgis.com/GVgbJbqm8hXASVYi/arcgis/rest/services/Santa_Monica_Mountains_Parcels_VTL/VectorTileServer/tile/{z}/{y}/{x}.pbf`,url:'https://xxx.xxx.com.cn/api/energy-geo-services/proxy/esri.proxy?https://xxx.xxx.com.cn/server/rest/services/Hosted/ChuLiJiSuanZhanChang/VectorTileServer/tile/{z}/{y}/{x}.pbf?accessToken=' +accessToken, // 這里arcgis矢量瓦片服務URL需要具體替換});const parcelsLayer = new VectorTileLayer({source: parcelsSource});new Map({layers: [new WebGLTileLayer({source: new Source({url:'https://ibasemaps-api.arcgis.com/arcgis/rest/services/' + 'World_Imagery/MapServer/tile/{z}/{y}/{x}?token=AAPKca495ea263b64e44b61eaaecdbddebfcwEQjC8k8-6XGMrrXyCie6xzybboRl4REq-TwDQTm8Wz-8sL6REARz1wcm14Kq9ny',}),}),parcelsLayer],target: 'map',view: new View({// center: fromLonLat([-118.4877, 34.0227]),// zoom: 14,center: fromLonLat([113.47, 23.47]), // 關鍵轉換zoom: 7,}),});applyStyle(parcelsLayer, parcelsStyle, {updateSource: false})
})
</script>

本文來自互聯網用戶投稿,該文觀點僅代表作者本人,不代表本站立場。本站僅提供信息存儲空間服務,不擁有所有權,不承擔相關法律責任。
如若轉載,請注明出處:http://www.pswp.cn/diannao/96750.shtml
繁體地址,請注明出處:http://hk.pswp.cn/diannao/96750.shtml
英文地址,請注明出處:http://en.pswp.cn/diannao/96750.shtml

如若內容造成侵權/違法違規/事實不符,請聯系多彩編程網進行投訴反饋email:809451989@qq.com,一經查實,立即刪除!

相關文章

mybatis xml中表名 字段報紅解決

mybatis xml中表名 字段報紅解決

谷歌瀏覽器重定向url,谷歌瀏覽器瀏覽網頁修改url到本地

谷歌應用商店搜索插件requestly&#xff08;有個相似名稱的插件&#xff0c;選擇這個Requestly: Supercharge your Development & QA&#xff09; 安裝后打開插件網址https://app.requestly.io/rules/my-rules 新建規則rules->my rules-> new rule -> redirect …

教育場景下禁用html5播放器拖動進度條的例子

禁用視頻課程進度條的拖動功能&#xff0c;主要是為了強制學員按照課程設計的順序觀看內容&#xff0c;防止跳過關鍵知識點&#xff0c;從而保證學習效果和課程的完整性。 1.防止應試作弊&#xff1a; 在一些需要觀看視頻才能解鎖下一章節或完成測試的場景中&#xff0c;禁用…

async實戰

一、協程 協程是程序員人為創造 協程是一種用戶態內的上下文切換技術。通過一個線程實現代碼塊相互切換執行。yield返回生成器 yield from 代表&#xff0c;跳到 func2協程函數 通過函數名()&#xff0c;是執行不了的。需要把函數加入到loop里面來&#xff0c;才可以被執行。 把…

個人搭建小網站教程(云服務器Ubuntu版本)

目錄 1.配置云服務器&#xff08;略講&#xff09; 2.vscode連接&#xff08;ssh連接&#xff09; 3.本地壓縮項目包 4.傳輸項目 5.配置項目依賴 6.運行項目 1.啟動 FastAPI 后端&#xff08;Python 部分&#xff09; 2.啟動 Next.js 前端&#xff08;Node.js 部分&…

pion/webrtc v4.1.4 版本發布:關鍵特性與性能優化全面解析

引言 實時通信技術在現代互聯網應用中扮演著越來越重要的角色&#xff0c;從視頻會議到在線教育&#xff0c;從遠程醫療到物聯網設備交互&#xff0c;WebRTC技術已經成為實時音視頻通信的事實標準。作為Go語言中最成熟且廣泛使用的WebRTC實現&#xff0c;pion/webrtc項目持續推…

集成算法(聚類)

下面簡單集成算法代碼from sklearn.datasets import make_blobs from sklearn.cluster import KMeans import matplotlib.pyplot as plt# 創建數據集&#xff0c;生成 3 個中心的聚類數據&#xff0c;共 300 個樣本&#xff0c;每個樣本 2 個特征 X, _ make_blobs(n_samples30…

01 網絡信息內容安全--緒論

1 課程內容 網絡信息內容獲取技術網絡信息內容預處理技術網絡信息內容過濾技術社會網絡分析技術入侵檢測技術異常流量檢測技術對抗攻擊技術 2 理論研討 分為16個組 2.1 網絡信息內容獲取技術&#xff1a;第1組 【用DeepSeek網站爬蟲&#xff0c;數據獲取零成本&#xff01…

GPT-5:天變了嗎?還是風停了?

2025年8月8日&#xff0c;OpenAI 發布了 GPT-5。這次更新被許多人寄予厚望&#xff0c;也引發了不少爭議。對普通用戶來說&#xff0c;這是一場“又快又會做事”的智能盛宴&#xff1b;而對資深開發者和 AI 研究者而言&#xff0c;GPT-5 可能更像是一次不夠激進、略顯保守的版本…

生信分析自學攻略 | R語言數據篩選和修改

在《生信小白自學攻略》系列的前幾篇文章中&#xff0c;我們已經了解了 R 和 RStudio 的安裝、RStudio 的深度探索&#xff0c;以及 R 語言的基本數據類型和數據結構。現在&#xff0c;是時候深入探討如何運用 R 語言對數據進行精細化處理了。本篇推文將詳細介紹如何在 R 中對數…

從零開始學習概念物理(第13版)(1)

前言&#xff1a;對我來說&#xff0c;最有用的就是物理了&#xff0c;尤其是電磁學。但是要學好它&#xff0c;我得夯實我的基礎&#xff0c;前面更加基礎的數學和物理都不能拉下。現在我問了Deepseek推薦的國外物理書&#xff0c;這本《概念物理》是最適合我&#xff0c;等入…

CSS變量

元素背景需要統一&#xff0c;一個個設置修改起來很麻煩&#xff0c;也沒有全局變量&#xff1f; CSS中的變量_css變量-CSDN博客 -- 前綴定義變量&#xff0c;var(--) 使用變量&#xff0c;:root 表示根元素。 :root { --bg:#222; --fg:#bbb; } body { background:var(--bg)…

C++(Qt)軟件調試---vscode配置clang-tidy靜態分析(30)

C(Qt)軟件調試—vscode配置clang-tidy靜態分析&#xff08;30&#xff09; 文章目錄C(Qt)軟件調試---vscode配置clang-tidy靜態分析&#xff08;30&#xff09;[toc]1 概述2 clang-tidy基本用法3 目前已有檢查項4 vscode配置clang-tidy5 .clang-tidy配置文件6 參考地址更多精彩…

每天自動備份oracle

oracle數據庫比其他數據庫都貴&#xff0c;但是自帶的管理工具卻很差&#xff0c;真不知道咋想的。想完成每天自動備份&#xff0c;只能自己動手(window環境)&#xff1a;1、創建個備份目錄&#xff0c;如D:\databack2、創建個腳本&#xff1a;backup.bat核心內容如下&#xff…

HBase Coprocessor:擴展HBase功能的利器

HBase Coprocessor&#xff1a;擴展HBase功能的利器 關鍵詞&#xff1a;HBase, Coprocessor, 協處理器, RegionServer, 分布式計算, 擴展功能, 二級索引 摘要&#xff1a;HBase作為Hadoop生態中的分布式列存儲數據庫&#xff0c;以高可靠性、高吞吐量和強一致性著稱&#xff0c…

【Java后端】Spring Boot 實現請求設備來源統計與UA解析全攻略

Spring Boot 實現請求設備來源統計與UA解析全攻略 在 Web 應用的實際場景中&#xff0c;我們經常需要知道 請求來自哪里 —— 是 Android 手機&#xff1f;還是 iOS&#xff1f;或者是 PC 瀏覽器&#xff1f; 這類信息往往可以通過 User-Agent (UA) 來統計&#xff0c;進而幫助…

技術框架搭建:支撐競拍全流程

純競拍的技術框架是一個多層協同的系統&#xff0c;從用戶交互到數據處理&#xff0c;每個環節都有專門的技術組件提供支持。?前端層是用戶與競拍系統交互的窗口&#xff0c;核心目標是提供流暢、實時、直觀的操作體驗。采用 React、Vue 等主流前端框架構建單頁應用&#xff0…

2025.8.18-2025.8.24第34周:有內耗有掙扎

&#x1f31f; 本周完成的3件亮點事情&#xff08;可具體寫過程&#xff09;&#xff1a; openvla debug起來了把上周的演講視頻發給了導師&#xff0c;人家幫我提了很多建議。羅永浩&#xff0c;李想4小時訪談看完了即興演講開始不內耗&#xff0c;直接講&#xff0c;這樣才能…

點播視頻預覽是怎么做到的?

看進度條上的小窗口&#xff0c;你有沒有想過&#xff0c;嗶哩嗶哩是如何在進度條上顯示視頻預覽的? 這個功能非常有用&#xff0c;尤其是在播放長視頻時。 如何才能實現? 實現這一點有三種方法。 預先為視頻生成 CSS sprites&#xff0c;并通過 API 獲取預先為視頻生成 W…

prometheus監控kubernetes集群并使用 grafana展示數據

目錄 Prometheus組成及架構 prometheus核心組件 1.Prometheus Server 2.Exporters 3.Alertmanager 4.Pushgateway 數據流程 在k8s中部署PrometheusGrafana釘釘告警郵件告警 將kube-Prometheus包下載后傳入虛擬機 tar -xzv kube-promethus.zip cd 進入 ll 顯示目錄 …