久久久久久久久久美女_免费毛片在线视频_欧美 日韩 三区_一边吃奶一边插下面_91国偷自产一区二区三区亲奶_午夜丰满少妇高清毛片1000部

首頁(yè) 新聞中心 技術(shù)文檔 OpenLayers中文教程文檔

OpenLayers的投影方式

發(fā)布時(shí)間:2021-12-12 22:57:52   瀏覽量:5327   作者:openlayers.org

OpenLayers 能夠在不同于服務(wù)器提供的坐標(biāo)系中顯示來(lái)自 WMS、WMTS、靜態(tài)圖像和許多其他來(lái)源的柵格數(shù)據(jù)。圖像的地圖投影的轉(zhuǎn)換直接在 Web 瀏覽器中進(jìn)行。任何 Proj4js 支持的坐標(biāo)參考系統(tǒng)中的視圖都是可能的,以前不兼容的層現(xiàn)在可以組合和覆蓋。

用法

API 的使用非常簡(jiǎn)單。只需指定正確的投影(例如使用EPSG代碼)ol/View

import {Map, View} from'ol';import TileLayer from'ol/layer/Tile';import TileWMS from'ol/source/TileWMS';varmap =newMap({target:'map',view:newView({projection:'EPSG:3857',//HERE IS THE VIEW PROJECTIONcenter: [0,0],zoom:2}),layers: [newTileLayer({source:newTileWMS({projection:'EPSG:4326',//HERE IS THE DATA SOURCE PROJECTIONurl:'https://ahocevar.com/geoserver/wms',params: {'LAYERS':'ne:NE1_HR_LC_SR_W_DR'}})})]});

如果源(基于ol/source/TileImageol/source/Image)的投影與當(dāng)前 的投影不同,ol/View則重新投影會(huì)在幕后自動(dòng)發(fā)生。

自定義投影

使用自定義投影的最簡(jiǎn)單方法是將Proj4js庫(kù)添加到您的項(xiàng)目中,然后使用 proj4 定義字符串定義投影。它可以安裝

npm install proj4

以下示例顯示了英國(guó)國(guó)家網(wǎng)格的定義:

import proj4 from'proj4';import {get as getProjection, register} from'ol/proj';proj4.defs('EPSG:27700','+proj=tmerc +lat_0=49 +lon_0=-2 +k=0.9996012717 '+'+x_0=400000 +y_0=-100000 +ellps=airy '+'+towgs84=446.448,-125.157,542.06,0.15,0.247,0.842,-20.489 '+'+units=m +no_defs');register(proj4);varproj27700 = getProjection('EPSG:27700');proj27700.setExtent([0,0,700000,1300000]);

視圖投影的變化

要切換用于顯示地圖的投影,您必須在 上設(shè)置一個(gè)ol/View具有選定投影的新投影ol/Map

map.setView(newView({projection:'EPSG:27700',center: [400000,650000],zoom:4}));

TileGrid 和范圍

當(dāng)需要重新投影時(shí),新的圖塊(在目標(biāo)投影中)位于從原始源圖塊創(chuàng)建的引擎蓋下。默認(rèn)情況下,重新投影圖塊的 TileGrid 是使用ol/tilegrid~getForProjection(projection). 投影應(yīng)該有范圍定義(見(jiàn)上文)才能正常工作。

或者,可以手動(dòng)構(gòu)建自定義目標(biāo) TileGrid 并使用ol/source/TileImage~setTileGridForProjection(projection, tilegrid). 當(dāng)重新投影到指定的投影而不是創(chuàng)建默認(rèn)投影時(shí),將使用此 TileGrid。在某些情況下,這可用于優(yōu)化性能(通過(guò)調(diào)整圖塊大小)或視覺(jué)質(zhì)量(通過(guò)指定分辨率)。

怎么運(yùn)行的

重投影過(guò)程基于三角形——目標(biāo)柵格被分成有限數(shù)量的三角形,頂點(diǎn)使用ol/proj功能轉(zhuǎn)換(proj4js通常用于定義自定義轉(zhuǎn)換)。三角形內(nèi)像素的重投影近似于仿射變換(渲染硬件由畫(huà)布 2d 上下文加速):

通過(guò)這種方式,我們可以在幾乎任何硬件(支持 canvas 2d)上支持來(lái)自 proj4js(甚至自定義轉(zhuǎn)換函數(shù))的各種投影,而實(shí)際轉(zhuǎn)換計(jì)算數(shù)量相對(duì)較少。

重投影的精度受三角形數(shù)量的限制。

重投影過(guò)程會(huì)保留源(png 或 gif)提供的柵格數(shù)據(jù)的透明度,并且重投影生成的間隙和無(wú)數(shù)據(jù)像素會(huì)自動(dòng)透明。

動(dòng)態(tài)三角測(cè)量

上圖顯示了當(dāng)原始圖像(左;EPSG:27700)僅使用有限數(shù)量的三角形(右;EPSG:3857)進(jìn)行轉(zhuǎn)換時(shí),會(huì)出現(xiàn)明顯的錯(cuò)誤(尤其是在邊緣)。可以通過(guò)增加使用的三角形數(shù)量來(lái)最小化誤差。

由于某些轉(zhuǎn)換需要更詳細(xì)的三角剖分網(wǎng)絡(luò),因此動(dòng)態(tài)三角剖分過(guò)程會(huì)自動(dòng)測(cè)量重投影誤差并迭代細(xì)分以滿足特定的誤差閾值:

對(duì)于調(diào)試,可以通過(guò) 啟用重投影邊緣的渲染ol.source.TileImage#setRenderReprojectionEdges(true)

先進(jìn)的

三角剖分精度閾值

以像素為單位的默認(rèn)三角測(cè)量誤差閾值由ERROR_THRESHOLD(0.5 像素) 給出。如果需要為不同的源定義不同的閾值,reprojectionErrorThreshold可以在構(gòu)建瓦片圖像源時(shí)傳遞該選項(xiàng)。

按范圍限制重新投影地圖的可見(jiàn)性

重投影算法使用逆變換(從視圖投影到數(shù)據(jù)投影)。對(duì)于某些坐標(biāo)系,這可能會(huì)導(dǎo)致源數(shù)據(jù)在地圖上“重復(fù)出現(xiàn)”。例如,當(dāng)將瑞士地圖從 EPSG:21781 重新投影到 EPSG:3857 時(shí),它會(huì)顯示兩次:一次在歐洲的適當(dāng)位置,但也在地球另一側(cè)的新西蘭附近的太平洋中。

盡管這是逆變換在數(shù)學(xué)上正確的行為,但用戶并不期望圖層在多個(gè)位置的可見(jiàn)性。一個(gè)可能的通用解決方案是也計(jì)算每個(gè)頂點(diǎn)的前向變換 - 但這會(huì)顯著降低性能(特別是對(duì)于計(jì)算成本高的變換)。

因此,推薦的解決方法是ol.layer.Tile在視圖投影上定義適當(dāng)?shù)目梢?jiàn)性范圍。重投影演示示例中演示了如何設(shè)置此類限制。

分辨率計(jì)算

在確定要加載的源切片時(shí),需要計(jì)算理想的源分辨率。該ol/reproj~calculateSourceResolution(sourceProj, targetProj, targetCenter, targetResolution)函數(shù)計(jì)算理想值,以便在重投影期間實(shí)現(xiàn)盡可能接近 1:1 的像素映射,然后用于從源中選擇適當(dāng)?shù)目s放級(jí)別。

然而,對(duì)整個(gè)目標(biāo)縮放級(jí)別使用相同的源縮放級(jí)別通常是不切實(shí)際的——不同的投影在世界不同地區(qū)可能具有顯著不同的分辨率(例如 EPSG:3857 和 EPSG:4326 中的極地地區(qū))和對(duì)整個(gè)縮放級(jí)別強(qiáng)制使用單一分辨率會(huì)導(dǎo)致某些圖塊按比例放大/縮小,可能需要加載大量源圖塊。因此,分辨率映射是針對(duì)每個(gè)重新投影的瓦片(在瓦片范圍的中間)單獨(dú)計(jì)算的。


主站蜘蛛池模板: 亚洲成人福利在线观看 | 国产精品电影一区二区 | 一级aaa级毛片午夜在线播放 | 国产一区二区视频在线观看 | 精品欧美一区二区久久久伦 | 毛片免费观看视频 | 黄色的网站在线观看 | 中文字幕日本在线观看 | 久久精品亚洲一区二区三区浴池 | 亚洲精品免费观看 | 蜜桃久久久久久久 | 久久99精品一区二区三区三区 | 日韩成人小视频 | 高清不卡一区二区 | 国产精品一区二区三区在线 | 成人久久久 | 日本精品久久久久久久 | 国外成人在线视频网站 | 91久久国产综合久久 | 欧美性猛交xxxx黑人交 | 日韩国产成人 | 99国内精品 | 成人国产在线视频 | 麻豆视频观看 | 成人区精品一区二区婷婷 | 国产 麻豆 日韩 欧美 久久 | 欧美日本一区 | 亚洲88| 特黄aaaaaaaaa真人毛片 | 麻豆传媒在线视频 | 日韩一区二区三区免费视频 | 久久一区二 | 欧美精品一区二区三区在线 | 欧美日韩亚洲激情 | 国产中文视频 | 青青草网 | 日日爱av | 天堂av一区二区 | 国产美女视频 | 精品视频在线免费观看 | 一级片aaaa |