從Mapbox樣式規範對象創建開放層映射。
通過探索現場示例來印像一下該庫的所作所為。
要在具有基於NPM的DEV環境的應用程序中使用庫,請與
npm install ol-mapbox-style
這樣安裝時,只需導入OL-MAPBOX風格的模塊,就像下面的用法示例一樣。要使用OL-Mapbox風格的獨立構建,只需在您的HTML頁面上包含“ dist/olms.js”,然後從全局olms
對象(例如olms.apply()
, olms.applyBackground()
)中訪問導出功能。請注意,獨立構建取決於OpenLayers的完整構建。
ol-mapbox風格> = V9需要開放層版本> = 7 。
OL-MAPBOX風格的V8需要OpenLayers版本> = 6.13.0 <7 。
有關完整文檔,請參見API部分。
下面的代碼使用https://
url:
import { apply } from 'ol-mapbox-style' ;
apply ( 'map' , 'https://api.mapbox.com/styles/v1/mapbox/bright-v9?access_token=YOUR_MAPBOX_TOKEN' ) ;
要將樣式和源分配給圖層,請使用applyStyle()
。 mapbox://
也支持URL:
import { applyStyle } from 'ol-mapbox-style' ;
import VectorTileLayer from 'ol/layer/VectorTile.js'
const layer = new VectorTileLayer ( { declutter : true } ) ;
applyStyle ( layer , 'mapbox://styles/mapbox/bright-v9' , { accessToken : 'YOUR_MAPBOX_TOKEN' } ) ;
要將Mapbox樣式的background
層的屬性應用於地圖或VectorTile
層,請使用applyBackground()
函數。
還有一個低級API。要為單個開放式矢量或向量瓷磚層創建樣式功能,請使用stylefunction
模塊:
import { stylefunction } from 'ol-mapbox-style' ;
import VectorLayer from 'ol/layer/Vector.js' ;
import VectorSource from 'ol/source/Vector.js' ;
import GeoJSON from 'ol/format/GeoJSON.js' ;
const layer = new VectorLayer ( {
source : new VectorSource ( {
format : new GeoJSON ( ) ,
url : 'data/states.geojson'
} )
} ) ;
fetch ( 'data/states.json' ) . then ( function ( response ) {
response . json ( ) . then ( function ( glStyle ) {
stylefunction ( layer , glStyle , 'states' ) ;
} ) ;
} ) ;
請注意,此低級API並未為該圖層創建源,並且為使用圖標的樣式設置精靈處理需要額外的工作。
ol-mapbox-style
不能將PBF/SDF字形用於text-font
佈局屬性,如Mapbox樣式規範中所定義。相反,它依賴於Web字體。一個ol:webfonts
元數據屬性可以在樣式對象的根部設置為指定WebFonts的位置,例如
{
"version" : 8 ,
"metadata" : {
"ol:webfonts" : "https://my.server/fonts/{font-family}/{fontweight}{-fontstyle}.css"
}
// ...
}
作為替代方案,可以使用apply()
或applyStyle()
函數的webfonts
選項。
以下佔位符可以在模板URL中使用:
{font-family}
:CSS字體自己轉換為小寫,毛坯替換為 - ,例如noto-sans{Font+Family}
:在原始情況下,css字體家庭,空白替換為+,例如noto+sans{fontweight}
:CSS字體重量(數字),例如400,700{fontstyle}
:CSS字體樣式,例如正常,斜體{-fontstyle}
:CSS字體樣式以外的其他(例如 - 質或空字符串)正常如果在樣式對像上沒有metadata['ol:webfonts']
屬性,則將使用Fontsource字體。應用程序也可以使用CSS加載其他字體。如果瀏覽器中的字體已經可用,則ol-mapbox-style
將不會加載它。
由於這種差異,字體堆棧的處理與規格中定義的不同:樣式和重量是從主字體中獲取的(即字體堆棧中的第一個字體)。僅當主字體不可用/加載時,僅使用字體堆棧中的後續字體,並且將與主字體的樣式和重量一起使用。
npm run build
由此產生的分發文件將在dist/
文件夾中。要查看庫中的庫,請導航到dist/index.html
。
要在本地進行測試,請運行
npm test
對於瀏覽器中的調試測試,請運行
npm run karma
並在控制台輸出中指示的主機和端口上打開一個瀏覽器(通常是http:// localhost:9876/),然後單擊“調試”按鈕以轉到調試環境。
OL-MAPBOX風格•文檔
OL-MAPBOX風格•文檔
層:
string
[]
層。如果沒有提供源,則具有所提供ID的圖層將從樣式的layers
數組中使用。所有層都需要使用相同的來源。
來源:
string
來源。默認值為''
,它導致使用樣式中的第一個來源。
更新:
boolean
更新或創建矢量(圖塊)層源,其中包含為MAPBOX樣式定義中源指定的參數。
OL-MAPBOX風格•文檔
id :
string
|number
功能ID。
來源:
string
源ID。
OL-MAPBOX風格•文檔
AccessToken :
string
MAPBOX樣式的訪問令牌。必須為mapbox://
樣式URL提供此功能。對於https://
和其他URL,任何訪問密鑰都必須是樣式URL的最後查詢參數。
背景:
false
|BackgroundColor
層的背景顏色。如果未指定,將使用Mapbox樣式對象的背景。設置為false
以防止使用Mapbox樣式的背景。
className :
string
一個將設置為圖層元素的CSS類名稱。
整理:
boolean
整理圖像和文字。將整理化應用於將其設置為true
所有向量和VeTortile層的所有圖像和文本樣式。優先級由圖層,樣式的zIndex
和功能的渲染順序定義。較高的z指數意味著更高的優先級。在同一z索引中,在另一個功能具有更高的優先級之前呈現的功能。
作為優化,具有相同className
的層的優化整理特徵在所有這些層的填充和中風樣式上方都呈現。選擇退出此行為並將其層的Declutterd特徵放置在自己的圖層中,以除ol-layer
以外的className
配置該圖層。
程度:
Extent
圖層渲染的邊界範圍。該層不會在此範圍之外渲染。
層:
string
[]
將渲染限製到包含層的列表。所有層必須共享相同的向量源。如果您的樣式使用多個源,則需要使用source
屬性或layers
屬性將渲染限制為單個向量源。
地圖:
Map
將圖層設置為地圖上的覆蓋層。該地圖不會在其圖層集合中管理此圖層,並且該圖層將在頂部呈現。這對於臨時層很有用。將圖層添加到地圖並由地圖管理的標準方法是使用map.addLayer()
。
最大值:
number
最大分辨率(獨家)在該層將是可見的。如果既不定義maxResolution
也不定義minZoom
,則該圖層的maxResolution
將與樣式源的minzoom
匹配。
maxzoom :
number
可見此層的最大視圖變焦級別(包含在內)。
最低分辨率:
number
該層可見的最小分辨率(包含)。
Minzoom :
number
最小視圖縮放級別(獨家)在該層上可見。如果既不定義maxResolution
也不定義minZoom
,則該層的minZoom
將與樣式源的minzoom
匹配。
不透明度:
number
不透明度(0,1)。
預緊力:
number
預付。將低分辨率瓷磚加載到preload
水平。 0
意味著沒有預加載。
屬性:
object
任意可觀察的特性。可以使用#get()
和#set()
訪問。
RenderBuffer :
number
從渲染圖中獲取呈渲染或hit-detection時,渲染器從介紹器獲得特徵時使用的像素中的緩衝區。建議的值:矢量圖塊通常用緩衝區生成,因此該值應與所用圖塊的最大緩衝區匹配。它至少應該是最大點符號或線寬度的大小。
rendermode :
VectorTileRenderType
向量圖塊的渲染模式:
'hybrid'
:多邊形和線元素作為圖像渲染,因此在縮放動畫中將像素縮放。點符號和文本被準確地呈現為向量,並且可以保持旋轉視圖。'vector'
:一切都被呈現為向量。使用此模式可以改善僅具有少數渲染功能的矢量瓷磚層的性能(例如,強調具有相同源的另一層特徵的子集)。 渲染點:
OrderFunction
渲染訂單。在渲染之前對功能進行分類時要使用的函數。默認情況下,以創建它們的順序繪製功能。使用null
避免這種排序,但要獲得未定義的抽獎順序。
來源:
string
如果您的樣式使用多個源,則需要使用source
屬性或layers
屬性將渲染限制為單個向量源。 source
屬性對應於Mapbox樣式中向量源的ID。
styleurl :
string
用於此層的Mapbox樣式對象的URL。對於使用Mapbox Studio創建並在Mapbox上託管的樣式,這將看起來像'Mapbox:// styles/you/your-style'。
更新時:
boolean
設置為true
時,將在動畫期間重新創建功能批次。這意味著將不會顯示媒介,但設置將對大量向量數據產生性能影響。設置為false
時,當沒有動畫活動時,將重新創建批處理。
更新以互動:
boolean
設置為true
時,將在互動過程中重新創建功能批次。另請參見updateWhileAnimating
。
UseInterIntimtilesonError :
boolean
使用錯誤的臨時瓷磚。
可見:
boolean
能見度。
Zindex :
number
z索引渲染的z索引。在渲染時間,將首先按z索引,然後按位置訂購這些圖層。如果undefined
,則假定使用添加到地layers
集合中的圖層或Infinity
層的setMap()
方法時的zIndex
0。
OL-MAPBOX風格•文檔
AccessToken :
string
訪問'mapbox://'URL的訪問令牌。
AccessTokenParam :
string
訪問令牌參數。用於內部用途。
getImage :(
arg0
,arg1
)=>string
|HTMLCanvasElement
|HTMLImageElement
返回圖像名稱的圖像的函數。如果結果是HTMLimageElement,則必須已經加載。該層可用於調用layer.changed(),當圖像的加載和處理完成時。此功能可用於不在精靈中或覆蓋精靈圖標的圖標。
• arg0 : VectorLayer
< VectorSource
any
, any
> | VectorTileLayer
< VectorTile
any
, any
>
• arg1 : string
string
| HTMLCanvasElement
| HTMLImageElement
投影:
string
僅在使用非標準預測時才有用。用露天層註冊的投影代碼。該樣式的所有來源都必須在此投影中提供。該投影還必須具有有效的範圍,該範圍將用於確定所有樣式的瓷磚源的瓷磚網格的起源和分辨率。提供時,tile和geojson URL中的bbox佔位符會更改:默認值為{bbox-epsg-3857}
,當投影設置為EPSG:4326
時,bbox佔位符將為{bbox-epsg-4326}
。
分辨率:
number
[]
僅在使用非標準預測時才有用。將分辨率映射到MAPBOX樣式中使用的zoom
的分辨率。
styleurl :
string
Mapbox GL樣式的URL。當它們包含相對Sprite URL或通過相對URL引用數據的來源時,所需的樣式被提供為對象。
TransformRequest :(
arg0
,arg1
)=>string
|void
|Request
|Promise
<<string
|Request
>
控制ol-mapbox-style
的功能,以獲取資源。可用於修改URL,添加標頭或設置憑據選項。使用URL和資源類型稱為參數,此函數應該返回Request
或URL string
或Promise Tehereof。沒有返回值,原始請求將不會修改。
• arg0 : string
• arg1 : ResourceType
string
| void
| Request
| Promise
<< string
| Request
>
WebFonts :
string
解決WebFonts的模板。可以用來指定在沒有ol:webfonts
Metadata中設置在樣式對像中的WebFonts元數據時獲取Web字體的位置。有關詳細信息,請參見README.md
中的getFonts()
和“字體處理”部分。
OL-MAPBOX風格•文檔
ResourceType <>:
"Style"
|"Source"
|"Sprite"
|"SpriteImage"
|"Tiles"
|"GeoJSON"
OL-MAPBOX風格•文檔
重命名和重新出口適用
OL-MAPBOX風格•文檔
import { MapboxVectorLayer } from 'ol-mapbox-style' ;
基於使用單個向量源的MAPBOX樣式的向量圖層。用Mapbox Studio的共享面板中顯示的styleUrl
和accessToken
配置圖層。如果樣式使用多個源,請使用source
屬性選擇單個向量源。如果要在樣式中渲染圖層的子集,請使用layers
屬性(所有圖層都必須共享相同的向量源)。有關更多詳細信息,請參見構造函數選項。
const map = new Map({
view: new View({
center: [0, 0],
zoom: 1,
}),
layers: [
new MapboxVectorLayer({
styleUrl: 'mapbox://styles/mapbox/bright-v9',
accessToken: 'your-mapbox-access-token-here',
}),
],
target: 'map',
});
在配置或加載錯誤時,該圖層將觸發'error'
事件。聽眾將收到一個具有error
屬性的對象,可用於診斷問題。
注意完整構建的用戶: MapboxVectorLayer
也需要加載OL-Mapbox風格的庫。
選項。
模塊:ol/events/event 〜baseevent#事件:錯誤
VectorTileLayer
新的MapBoxVectorLayer (
options
):MapboxVectorLayer
•選項: Options
圖層選項。至少必須提供styleUrl
和accessToken
。
MapboxVectorLayer
VectorTileLayer.constructor
AccessToken :
string
OL-MAPBOX風格•文檔
AddMapboxlayer (
mapOrGroup
,mapboxLayer
,beforeLayerId
?):Promise
void
將新的Mapbox層對象添加到樣式中。該地圖將被重新渲染。
• MaporGroup : Map
| LayerGroup
apply
地圖或圖層group。
• MapBoxLayer : any
MAPBOX層對象。
• beforelayerid? : string
在將要添加的新層之前,MAPBOX層的可選ID。
Promise
void
當添加層可用時解決。
OL-MAPBOX風格•文檔
應用(
mapOrGroupOrElement
,style
,options
):Promise
<Map
|LayerGroup
>
加載並將MAPBOX樣式對象應用於OpenLayers Map或layerGroup中。這包括地圖背景,層以及對於未定義視圖的地圖實例,還包括中心和變焦。
例子:
import apply from 'ol-mapbox-style' ;
apply ( 'map' , 'mapbox://styles/mapbox/bright-v9' , { accessToken : 'YOUR_MAPBOX_TOKEN' } ) ;
僅當Mapbox樣式文檔中存在以及在OpenLayers Map上尚未設置的中心和縮放。
層將添加到OpenLayers地圖中,而不會影響可能已經在地圖上設置的任何圖層。
apply()
添加的層將還有兩個其他屬性:
mapbox-source
:Mapbox樣式文檔源的id
是創建了OpenLayers層的。通常, apply()
每個Mapbox樣式源創建一個開放層層,除非該圖層堆棧中有不同源的層。mapbox-layers
:Mapbox樣式文檔的id
S中包含在OpenLayers層中。此功能在OpenLayers Map或LayerGroup實例上設置了一個額外的mapbox-style
屬性,該實例保存了Mapbox樣式對象。
• MaporGrouporelement : string
| Map
| LayerGroup
| HTMLElement
現有的openlayers映射實例或HTML元素,或者是將是新的OpenLayers Map的目標的HTML元素的ID,或者是圖層組的目標。如果層組,則將忽略在地圖上的樣式。
•樣式: any
JSON樣式對像或樣式URL指向Mapbox樣式對象。使用MAPBOX API時,URL是Mapbox Studio的“共享”面板中顯示的styleUrl
。此外,必須設置accessToken
選項(請參見下文)。當作為JSON樣式對像傳遞時, apply()
創建的所有開放層層都將立即可用,但是它們可能還沒有源(即,在Mapbox樣式文檔中由Tilejson URL定義時,它們可能還沒有源。當作為樣式URL傳遞時,加載和解析MAPBOX樣式文檔時,將添加層。
•選項: Options
= {}
選項。
Promise
< Map
| LayerGroup
>
將所有層都添加到OpenLayers映射實例或LayerGroup,其源設置以及其樣式應用的承諾。 resolve
方案回調將以openlayers映射實例或layergroup為參數調用。
OL-MAPBOX風格•文檔
applabecking (
mapOrLayer
,glStyle
,options
):Promise
any
將Mapbox樣式的第一個background
圖層的屬性應用於提供的地圖或圖層(組)。
例子:
import { applyBackground } from 'ol-mapbox-style' ;
import { Map } from 'ol' ;
const map = new Map ( { target : 'map' } ) ;
applyBackground ( map , 'https://api.maptiler.com/maps/basic/style.json?key=YOUR_OPENMAPTILES_TOKEN' ) ;
• Maporlayer : Map
| BaseLayer
開放層映射或圖層(組)。
• Glstyle : any
MAPBOX樣式對像或URL。
•選項: Options
= {}
選項。
Promise
any
承諾在應用背景時可以解決。
OL-MAPBOX風格•文檔
applystyle (
layer
,glStyle
,sourceOrLayersOrOptions
?,optionsOrPath
?,resolutions
?):Promise
any
使用ol/layer/VectorTile
或ol/layer/Vector
將樣式函數應用於ol/source/VectorTile
或ol/source/Vector
。如果該圖層還沒有源,則將其從glStyle
中的信息中創建和填充(除非將updateSource
設置為false
)。
例子:
import { applyStyle } from 'ol-mapbox-style' ;
import { VectorTile } from 'ol/layer.js' ;
const layer = new VectorTile ( { declutter : true } ) ;
applyStyle ( layer , 'https://api.maptiler.com/maps/basic/style.json?key=YOUR_OPENMAPTILES_TOKEN' ) ;
樣式函數將渲染使用glStyle
對象的所有圖層,這些層使用第一層的源,指定source
或來自同一源的圖層子集。源需要是"type": "vector"
或"type": "geojson"
源。
提供的層將設置另外兩個屬性:
mapbox-source
:Mapbox樣式文檔源的id
是創建了OpenLayers層的。通常, apply()
每個Mapbox樣式源創建一個開放層層,除非該圖層堆棧中有不同源的層。mapbox-layers
:Mapbox樣式文檔的id
S中包含在OpenLayers層中。•圖層: VectorLayer
< VectorSource
any
, any
> | VectorTileLayer
< VectorTile
any
, any
>
開放層層。當該圖層配置了源時,將修改它以使用Glstyle source
的配置。除了url
和tileUrlFunction
以外,該層源上指定的選項將覆蓋Glstyle source
的選項。當源投影是默認值( EPSG:3857
)時, tileGrid
也將被覆蓋。如果您不想讓OL-Mapbox風格修改源,請使用updateSource: false
選項配置applyStyle()
。
• Glstyle : any
MAPBOX樣式對象。
• source orlayerSoroptions? : string
| string
[] | Options
& ApplyStyleOptions
= ''
選項或source
鍵或從Mapbox樣式對象的id
s的數組。提供source
密鑰時,指定源的所有層將包含在樣式函數中。提供層id
時,它們必須來自使用相同源的圖層。如果未提供或虛假值,則將渲染使用Glstyle中指定的第一個源的所有層。
• optionsorpath? : string
| Options
& ApplyStyleOptions
= {}
棄用。選項。或者,樣式文件的路徑(僅當相對路徑用於樣式的"sprite"
屬性時)。
•決議? : number
[] = undefined
棄用。將分辨率映射到縮放級別的分辨率。僅在使用非標準瓷磚網格或預測時才需要提供選項。
Promise
any
當可以將樣式用於渲染時,將解決的承諾將解決。
OL-MAPBOX風格•文檔
getFeatUrestate (
mapOrLayer
,feature
):any
設置或刪除功能狀態。就像該功能的屬性一樣,要考慮到樣式的功能狀態,並且可以用來有條件地呈現所選功能。
• Maporlayer : Map
| VectorLayer
< VectorSource
any
, any
> | VectorTileLayer
< VectorTile
any
, any
>
映射或圖層以設置特徵狀態。
•功能: FeatureIdentifier
功能標識符。
any
當沒有為給定功能標識符設置功能狀態時,功能狀態或null
。
OL-MAPBOX風格•文檔
getlayer (
map
,layerId
):Layer
<Source
,LayerRenderer
<any
>>
獲取包含提供的MAPBOX樣式layer
的OpenLayers Layer實例。請注意,當使用相同的Mapbox樣式source
時,多個MAPBOX樣式圖層組合在單個OpenLayers Layer實例中。
•地圖: Map
| LayerGroup
OpenLayers映射或LayerGroup。
• layerid : string
MAPBOX樣式圖層ID。
Layer
< Source
, LayerRenderer
< any
>>
開放層層實例。
OL-MAPBOX風格•文檔
getlayers (
map
,sourceId
):Layer
<Source
,LayerRenderer
<any
>> []
獲取提供的MAPBOX樣式source
的OpenLayers層實例。
•地圖: Map
| LayerGroup
OpenLayers映射或LayerGroup。
• SourceID : string
MAPBOX樣式源ID。
Layer
< Source
, LayerRenderer
< any
>> []
開放層層實例。
OL-MAPBOX風格•文檔
getMapboxlayer (
mapOrGroup
,layerId
):any
獲取提供的layerId
的MAPBOX層對象。
• MaporGroup : Map
| LayerGroup
地圖或圖層組。
• layerid : string
MAPBOX層ID。
any
MAPBOX層對象。
OL-MAPBOX風格•文檔
GetSource (
map
,sourceId
):Source
獲取提供的MAPBOX樣式source
的OpenLayers源實例。
•地圖: Map
| LayerGroup
OpenLayers映射或LayerGroup。
• SourceID : string
MAPBOX樣式源ID。
Source
OpenLayers源實例。
OL-MAPBOX風格•文檔
getStyleForlayer (
feature
,resolution
,olLayer
,layerId
):Style
[]
僅獲取特定地圖框層的樣式。這對於創建傳奇可能很有用。
•功能: RenderFeature
| Feature
< Geometry
>
開放層功能。
•分辨率: number
查看分辨率。
• ollayer : VectorLayer
< VectorSource
any
, any
> | VectorTileLayer
< VectorTile
any
, any
>
開放層層。
• layerid : string
MAPBOX層的ID以獲取樣式
Style
[]
提供的MAPBOX層的樣式。
OL-MAPBOX風格•文檔
RecordStylayer (
record
):void
將Mapbox樣式layer
打開和關閉的錄製。打開時,渲染功能所屬於的層將設置為功能的mapbox-layer
屬性。
•記錄: boolean
= false
樣式層的記錄已打開。
void
OL-MAPBOX風格•文檔
removemapboxlayer (
mapOrGroup
,mapboxLayerIdOrLayer
):void
從樣式中刪除Mapbox層對象。該地圖將被重新渲染。
• MaporGroup : Map
| LayerGroup
apply
地圖或圖層group。
• MapBoxLayerIdorlayer : any
MAPBOX層ID或MAPBOX層對象。
void
OL-MAPBOX風格•文檔
Rendertransparent (
enabled
):void
配置是否應呈現具有透明樣式的功能。設置為true
時,可以使用ol/layer/Layer#getFeatures()
或ol/Map#getFeaturesAtPixel()
例如透明的多邊形填充)點擊檢測內容,例如多邊形的透明填充。
•啟用: boolean
啟用了透明元素的渲染。默認值為false
。
void
OL-MAPBOX風格•文檔
setFeatureState (
mapOrLayer
,feature
,state
):void
設置或刪除功能狀態。就像該功能的屬性一樣,要考慮到樣式的功能狀態,並且可以用來有條件地呈現所選功能。
功能狀態將存儲在匹配功能標識符的張開層層上, mapbox-featurestate
屬性。
• Maporlayer : Map
| VectorLayer
< VectorSource
any
, any
> | VectorTileLayer
< VectorTile
any
, any
>
開放層映射或圖層以設置特徵狀態。
•功能: FeatureIdentifier
功能標識符。
•狀態: any
功能狀態。設置為null
以刪除功能狀態。
void
OL-MAPBOX風格•文檔
stylefunction (
olLayer
,glStyle
,sourceOrLayers
,resolutions
,spriteData
,spriteImageUrl
,getFonts
,getImage
?,...args
?):StyleFunction
為使用指定source
的所有層,從glStyle
對象創建樣式函數,該層需要是"type": "vector"
或"type": "geojson"
源,並將其應用於指定的OpenLayers層。
提供的層將設置另外兩個屬性:
mapbox-source
:Mapbox樣式文檔源的id
是創建了OpenLayers層的。通常, apply()
每個Mapbox樣式源創建一個開放層層,除非該圖層堆棧中有不同源的層。mapbox-layers
:Mapbox樣式文檔的id
S中包含在OpenLayers層中。此功能還可以在Web Worker中起作用。在工作模式下,主線程需要收聽工人的消息,並用另一條消息響應以確保Sprite Image加載有效:
worker . addEventListener ( 'message' , event => {
if ( event . data . action === 'loadImage' ) {
const image = new Image ( ) ;
image . crossOrigin = 'anonymous' ;
image . addEventListener ( 'load' , function ( ) {
createImageBitmap ( image , 0 , 0 , image . width , image . height ) . then ( imageBitmap => {
worker . postMessage ( {
action : 'imageLoaded' ,
image : imageBitmap ,
src : event . data . src
} , [ imageBitmap ] ) ;
} ) ;
} ) ;
image . src = event . data . src ;
}
} ) ;
• ollayer : VectorLayer
< VectorSource
any
, any
> | VectorTileLayer
< VectorTile
any
, any
>
開放層層將樣式應用於。除樣式外,該圖層還將獲得兩個屬性: mapbox-source
將是glStyle
用於層的源的id
, mapbox-layers
將是glStyle
層id
s的數組。
• Glstyle : any
MAPBOX樣式對象。
• SourceOrlayers : string
| string
[]
來自Mapbox樣式對象的source
鍵或層id
的數組。提供source
密鑰時,指定源的所有層將包含在樣式函數中。提供層id
時,它們必須來自使用相同源的圖層。
•分辨率: number
[] = defaultResolutions
將分辨率映射到縮放級別的分辨率。
• spritedata : any
= undefined
來自Mapbox樣式對象的sprite
屬性中指定的URL的Sprite數據。僅在Mapbox樣式對像中指定sprite
屬性時才需要。
• SpriteImageUrl : string
| Request
| Promise
<< string
| Request
> = undefined
Mapbox樣式對象的sprite
屬性中指定的精靈的精靈圖像URL。僅在Mapbox樣式對像中指定sprite
屬性時才需要。
• getFonts = undefined
從GL樣式的metadata['ol:webfonts']
屬性(如果設置)接收字體堆棧和URL模板作為參數,並返回可用的(修改的)字體堆棧。字體名稱是Mapbox樣式對像中使用的名稱。如果未提供,則將使用字體堆棧。此功能也可以用於加載Web字體。
• getimage? = undefined
返回圖像名稱的圖像或URL的函數。如果結果是HTMLimageElement,則必須已經加載。該層可用於調用layer.changed(),當圖像的加載和處理完成時。此功能可用於不在精靈中的圖標或覆蓋精靈圖標。
•... args? : any
StyleFunction
用於在ol.layer.Vector
或ol.layer.VectorTile
中使用的樣式功能。
OL-MAPBOX風格•文檔
updatemapboxlayer (
mapOrGroup
,mapboxLayer
):void
在樣式中更新Mapbox層對象。該地圖將通過新樣式重新渲染。
• MaporGroup : Map
| LayerGroup
apply
地圖或圖層group。
• MapBoxLayer : any
更新的MAPBOX層對象。
void
OL-MAPBOX風格•文檔
UpdateMapBoxsOrce (
mapOrGroup
,id
,mapboxSource
):Promise
Source
在樣式中更新MAPBOX源對象。將替換openlayers源,並將重新渲染地圖。
• MaporGroup : Map
| LayerGroup
apply
地圖或圖層group。
• ID : string
sources
對像中的源鍵字面的關鍵。
• MapBoxSource : any
MAPBOX源對象。
Promise
< Source
>
承諾在更新源時可以解決。