OpenLayers 加載ArcGIS瓦片數據

注:當前使用的是 ol 5.3.0 版本,天地圖使用的key請到天地圖官網申請,并替換為自己的key

隨著GIS應用的不斷發展,Web地圖也越來越豐富,除了像ESRI、超圖、中地數碼這樣GIS廠商有各自的數據源格式,也有Google、百度、高德、騰訊提供的GIS資源,如何加載各種GIS數據源,是WebGIS開發要解決的一個關鍵問題。

本節主要介紹加載百度地圖數據。

1. 如何加載百度地圖數據

可以參照瓦片地圖的方法來加載百度地圖,在OpenLayer 5地圖庫中沒有加載百度地圖數據源的方法,所以需要根據百度地圖瓦片請求格式拓展數據源來加載。

// 分辨率數組
const resolutions = []
for (let i = 0; i < 19; i++) {resolutions[i] = Math.pow(2, 18 - i)
}const tileGrid = new ol.tilegrid.TileGrid({origin: [0, 0],resolutions: resolutions
})
// 百度地圖數據源
const baiduSource = new ol.source.TileImage({projection: projection, // 坐標參考tileGrid: tileGrid, // 瓦片請求方式tileUrlFunction: function (tileCoord, pixelRatio, proj) {if (!tileCoord) {return ""}const z = tileCoord[0]let x = tileCoord[1]let y = tileCoord[2]if (x < 0) {x = "M" + (-x)}if (y < 0) {y = "M" + (-y)}return "http://online3.map.bdimg.com/onlinelabel/?qt=tile&x=" + x + "&y=" + y + "&z=" + z + "&styles=pl&udt=20151021&scaler=1&p=1";}
})
  • tileUrlFunction

拼接瓦片地圖URL,{x}{y}{z}對應瓦片行列號和級數。

  • projection

地圖投影坐標系,百度地圖才用EPSG:3857坐標系。

  • tileGrid

切片網格,地圖切片原點為[0,0]

2. 完整代碼2

其中libs文件夾下的包需要更換為自己下載的本地包或者引用在線資源。

<!DOCTYPE html>
<html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8" /><title>加載Baidu數據</title><meta charset="utf-8" /><script src="../libs/js/ol-5.3.3.js"></script><script src="../libs/js/jquery-2.1.1.min.js"></script><link rel="stylesheet" href="../libs/css//ol.css"><style>* {padding: 0;margin: 0;font-size: 14px;font-family: '微軟雅黑';}html,body {width: 100%;height: 100%;}#map {position: absolute;width: 100%;height: 100%;}.ol-mouse-position {padding: 5px;top: 10px;height: 40px;line-height: 40px;background: #060505ba;text-align: center;color: #fff;border-radius: 5px;}</style></head><body><div id="map" title="地圖顯示"></div></body></html><script>//地圖投影坐標系const projection = ol.proj.get('EPSG:3857');//==============================================================================////============================天地圖服務參數簡單介紹============================////================================vec:矢量圖層=================================////================================img:影像圖層=================================////================================cva:注記圖層=================================////======================其中:_c表示經緯度投影,_w表示球面墨卡托投影============////==============================================================================//const TDTImgLayer = new ol.layer.Tile({title: "天地圖影像圖層",source: new ol.source.XYZ({url: "http://t0.tianditu.com/DataServer?T=img_w&x={x}&y={y}&l={z}&tk=2a890fe711a79cafebca446a5447cfb2",attibutions: "天地圖注記描述",crossOrigin: "anoymous",wrapX: false})})const TDTImgCvaLayer = new ol.layer.Tile({title: "天地圖影像注記圖層",source: new ol.source.XYZ({url: "http://t0.tianditu.com/DataServer?T=cia_w&x={x}&y={y}&l={z}&tk=2a890fe711a79cafebca446a5447cfb2",attibutions: "天地圖注記描述",crossOrigin: "anoymous",wrapX: false})})const map = new ol.Map({target: "map",loadTilesWhileInteracting: true,view: new ol.View({center: [11421771, 4288300],zoom: 5,worldsWrap: true,minZoom: 1,maxZoom: 20,projection: projection}),// 鼠標控件:鼠標在地圖上移動時顯示坐標信息。controls: ol.control.defaults().extend([// 加載鼠標控件new ol.control.MousePosition()])})// map.addLayer(TDTImgLayer)// map.addLayer(TDTImgCvaLayer)const resolutions = []for (let i = 0; i < 19; i++) {resolutions[i] = Math.pow(2, 18 - i)}const tileGrid = new ol.tilegrid.TileGrid({origin: [0, 0],resolutions: resolutions})// 百度地圖數據源const baiduSource = new ol.source.TileImage({projection: projection,tileGrid: tileGrid,tileUrlFunction: function (tileCoord, pixelRatio, proj) {if (!tileCoord) {return ""}const z = tileCoord[0]let x = tileCoord[1]let y = tileCoord[2]if (x < 0) {x = "M" + (-x)}if (y < 0) {y = "M" + (-y)}return "http://online3.map.bdimg.com/onlinelabel/?qt=tile&x=" + x + "&y=" + y + "&z=" + z + "&styles=pl&udt=20151021&scaler=1&p=1";}})const baiduLayer = new ol.layer.Tile({source: baiduSource})map.addLayer(baiduLayer)
</script>

?

OpenLayers示例數據下載,請回復關鍵字:ol數據

全國信息化工程師-GIS 應用水平考試資料,請回復關鍵字:GIS考試

?

【GIS之路】 已經接入了智能助手,歡迎關注,歡迎提問。

歡迎訪問我的博客網站-長談GIShttp://shanhaitalk.com

都看到這了,不要忘記點贊、收藏 + 關注

本號不定時更新有關 GIS開發 相關內容,歡迎關注 !

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

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

相關文章

大模型是什么?

大模型&#xff0c;英文名叫Large Model&#xff0c;也被稱為基礎模型&#xff08;Foundation Model&#xff09;。我們通常說的大模型&#xff0c;主要指的是其中最常用的一類——大語言模型&#xff08;Large Language Model&#xff0c;簡稱LLM&#xff09;。除此之外&#…

LLaMaFactory 微調QwenCoder模型

步驟一&#xff1a;準備LLamaFactory環境 首先,讓我們嘗試使用github的方式克隆倉庫: git config --global http.sslVerify false && git clone --depth 1 https://github.com/hiyouga/LLaMA-Factory.git # 創建新環境&#xff0c;指定 Python 版本&#xff08;以 3.…

【位運算】判斷字符是否唯?(easy)

33. 判斷字符是否唯?&#xff08;easy&#xff09; 題?描述&#xff1a;解法&#xff08;位圖的思想&#xff09;&#xff1a;C 算法代碼&#xff1a;Java 算法代碼&#xff1a; 題?鏈接&#xff1a;?試題 01.01. 判定字符是否唯? 題?描述&#xff1a; 實現?個算法&…

滿天星之canvas實現【canvas】

展示 文章目錄 展示Canvas 介紹【基礎】簡介兼容性關鍵特性注意事項應用場景&#xff1a;基本示例 滿天星代碼實現【重點】代碼解釋 全量代碼【來吧&#xff0c;盡情復制吧少年】html引入JS代碼 參考資源 Canvas 介紹【基礎】 簡介 Canvas是一個基于HTML5的繪圖技術&#xff0…

可視化提示詞(Prompt)在訓練過程中的優化過程:visualize_prompt_evolution

可視化提示詞(Prompt)在訓練過程中的優化過程:visualize_prompt_evolution 這個函數 visualize_prompt_evolution 的作用是可視化提示詞(Prompt)在訓練過程中的優化過程,通過對比每個訓練輪次(Epoch)的提示詞與初始提示詞的差異,直觀展示哪些Token被保留、哪些被修改…

2025 一帶一路暨金磚國家技能發展與技術創新大賽 第一屆“信創適配及安全管理賽項”樣題

2025 一帶一路暨金磚國家技能發展與技術創新大賽 第一屆“信創適配及安全管理賽項”樣題 模塊A-理論知識&#xff1a;模塊B-適配環境搭建&#xff1a;系統安裝與配置&#xff1a;DNS 服務配置&#xff1a;DNS 服務配置&#xff1a;CA 服務配置&#xff1a;Httpd 服務配置&#…

Qt Creator調用Python代碼

Qt Creator調用Python代碼 項目場景:現在我寫的Qt上位機,需要調用同事使用python寫的代碼,所以我需要一個整合,把同事的代碼融合進我的Qt工程里來。 所以,本篇記錄Qt Creator中調用Python的一種方法。 操作系統:windows 11 64位 Python使用的版本為 3.9.10,(安裝參…

【QQ音樂】sign簽名| data參數 | AES-GCM加密 | webpack(上)

1.目標 網址&#xff1a;https://y.qq.com/n/ryqq/toplist/26 切換榜單出現請求&#xff0c;可以看到sign和data是加密的 2.逆向分析 搜索sign: 可以看到sign P(n.data)&#xff0c;而n.data就是請求的加密data參數 data {"comm":{"cv":4747474,&qu…

uni-app(6):Vue3語法基礎下

1 列表渲染 1.1 在 v-for 里使用數組 v-for 指令可以實現基于一個數組來渲染一個列表。v-for 指令需要使用 item in items 形式的特殊語法&#xff0c;其中 items 是源數據數組&#xff0c;而 item 則是被迭代的數組元素的別名。 在 v-for 塊中&#xff0c;我們可以訪問所有父…

STM32之SPI——外部FLASH和RFID

一、SPI協議的原理與應用 基本概念 串行外設接口SPI&#xff08;Serial Peripheral Interface&#xff09;是由美國摩托羅拉公司最先推出的一種同步串行傳輸規范&#xff0c;也是一種單片機外設芯片串行外設擴展接口。該接口是一種高速、全雙工、同步的通信總線&#xff0c;并…

51c視覺~3D~合集3

我自己的原文哦~ https://blog.51cto.com/whaosoft/13954440 #SceneTracker 在4D時空中追蹤萬物&#xff01;國防科大提出首個長時場景流估計方法 本篇分享 TPAMI 2025 論文??SceneTracker: Long-term Scene Flow Estimation Network??&#xff0c;國防科大提出首…

cf2059B

原題鏈接&#xff1a;https://codeforces.com/contest/2059/problem/B 題目背景&#xff1a; 將一個長度為 n 的數組 a 劃分為 k 個數組&#xff0c;再將所有偶數索引的數組合并成 b 數組&#xff0c;定義代價為 的最小索引 i &#xff0c;可得到的最小代價為多少。 思路&am…

爬蟲到智能數據分析:Bright Data × Kimi 智能洞察亞馬遜電商產品銷售潛力

前言 電商數據分析在現代商業中具有重要的戰略價值&#xff0c;通過對消費者行為、銷售趨勢、商品價格、庫存等數據的深入分析&#xff0c;企業能夠獲得對市場動態的精準洞察&#xff0c;優化運營決策&#xff0c;預測市場趨勢、優化廣告投放、提升供應鏈效率&#xff0c;并通…

從解決一個分享圖片生成的歷史bug出發,詳解LayoutInflater和View.post的工作原理

問題背景 最近在項目中遇到一個問題&#xff1a;在檔口分享功能中&#xff0c;需要動態生成一個分享圖片。代碼是這樣寫的&#xff1a; // 項目中的代碼 val shareView LayoutInflater.from(thisStallMainActivityV1).inflate(R.layout.share_header_stall_main_layout, nul…

2.linux目錄切換命令:cd與pwd以及路徑與路徑符

cd 切換當前工作目錄 cd [linux路徑0] cd沒有選項,直接執行,只有參數.如果沒有參數,表示回到用戶的home目錄 pwd 無參,無選項,直接打印當前工作目錄的絕對路徑 路徑 相對路徑 以當前目錄為起點,路徑描述無需使用/開頭 # cd Desktop 絕對路徑 路徑描述需要以/開頭 cd…

摩爾條紋 原理以及matlab 實現

一、簡介 莫爾條紋的形成原理-CSDN博客 “莫爾”一詞源于法文“Moire”&#xff0c;其原本的含義是“波動”或者“起波紋的”。早在古代時期&#xff0c;人們便偶然發現&#xff0c;當把兩塊薄的絲綢織物相互疊加放置時&#xff0c;能夠看到一種呈現不規則形態的花紋。此后&a…

【海康USB相機被HALCON助手連接過后,MVS顯示無法連接故障。】

在Halcon里使用助手調用海康USB相機時&#xff0c;如果這個界面點擊了【是】 那么恭喜你&#xff0c;相機只能被HALCON調用使用&#xff0c;使用MVS或者海康開發庫&#xff0c;將查找不到相機 解決方式&#xff1a; 右鍵桌面【此電腦】圖標 ->選擇【管理】 ->選擇【設備…

數據治理是什么意思?數據治理平臺有哪些?

目錄 一、數據治理的概念 1. 數據治理的定義 2. 數據治理的目標 二、數據治理的實施流程 1. 規劃階段 2. 評估階段 3. 執行階段 4. 監控與評估階段 三、常見的數據治理平臺 1. FineDataLink 2. IBM InfoSphere Information Governance Catalog 四、總結 隨著企業業…

高效工具-tldr

喜歡使用命令操作的小伙伴&#xff0c;肯定會遇到一個問題&#xff0c;查看命令如何使用時&#xff0c;會列出一堆&#xff0c;特別是英文&#xff0c;看的直發懵。前段時間我也是研究git命令&#xff0c;也遇到了類似的問題。好在有大數據&#xff0c;幫我普及相關的知識。 在…

安卓添加設備節點權限和selinux訪問權限

# 1 修改設備節點權限及配置屬性設置節點值 ## 1.1 修改設備節點權限 ### 1.1.1 不會手動卸載的節點 在system/core/rootdir/init.rc中添加節點權限 在on boot下面添加 chown system system /sys/kernel/usb/host chmod 0664 /sys/kernel/usb/host ### 1.1.2 支持熱插拔的…