Leaflet API - GridLayer 网格图层 中文文档
本文介绍下 Leaflet 中 GridLayer 网格图层 API的详细使用说明。
GridLayer 网格图层 API 调用方法
用于处理 HTML 元素的平铺网格的通用类。它是所有瓦片图层的基类,取代了
TileLayer.Canvas
。GridLayer 可以被扩展来创建 HTML
元素的平铺网格,如 <canvas>
,
<img>
or <div>
。GridLayer
将为你处理这些 DOM 元素的创建和动画。
使用示例
同步使用
要创建一个自定义图层,请扩展GridLayer并实现
createTile()
方法,它将被传递给一个
Point
对象,该对象具有
x
, y
, 和
z
(缩放级别)坐标,以绘制你的图层。
var CanvasLayer = L.GridLayer.extend({
createTile: function(coords){
// 创建一个用于绘图的 <canvas> 元素
var tile = L.DomUtil.create('canvas', 'leaflet-tile');
// 根据选项设置瓦片的宽度和高度
var size = this.getTileSize();
tile.width = size.x;
tile.height = size.y;
// 获得一个 canvas 上下文,并使用 coords.x、coords.y 和 coords.z 在上面画东西
var ctx = tile.getContext('2d');
// 返回瓦片,以便在屏幕上呈现
return tile;
}
});
异步使用
瓦片的创建也可以是异步的,这在使用第三方绘图库时很有用。一旦瓦片绘制完成,它可以被传递给
done()
回调。
var CanvasLayer = L.GridLayer.extend({
createTile: function(coords, done){
var error;
// 创建一个用于绘图的 <canvas> 元素
var tile = L.DomUtil.create('canvas', 'leaflet-tile');
// 根据选项设置瓦片的宽度和高度
var size = this.getTileSize();
tile.width = size.x;
tile.height = size.y;
// 异步地绘制一些东西,并将瓦片传递给 done() 回调
setTimeout(function() {
done(error, tile);
}, 1000);
return tile;
}
});
Creation
构造函数 | 说明 |
---|---|
L.gridLayer(
|
用提供的选项创建一个新的 GridLayer 实例。 |
Options 选项
选项 | 类型 | 默认值 | 说明 |
---|---|---|---|
tileSize
|
Number|Point |
256 |
网格中瓦片的宽度和高度。如果宽度和高度相等,则使用当前数字,否则使用
L.point(width, height) 。
|
opacity
|
Number |
1.0 |
瓦片的不透明度。可以在
createTile() 函数中使用。
|
updateWhenIdle
|
Boolean |
(depends) |
在移动浏览器上默认为
true
,以避免过多的请求并保持流畅的导航。否则为
false
以便在平移过程中显示新瓦片,因为在桌面浏览器中很容易在
keepBuffer
选项之外平移。
|
updateWhenZooming
|
Boolean |
true |
默认情况下,平滑缩放动画 (在
触摸缩放 或
flyTo() 期间)
将每隔一个整数的缩放级别更新网格图层。把这个选项设置为
false ,将只在平滑动画结束时更新网格图层。
|
updateInterval
|
Number |
200 |
在平移时,瓦片将会在
updateInterval 毫秒内最多只更新一次。
|
zIndex
|
Number |
1 |
瓦片图层的显性 zIndex。 |
bounds
|
LatLngBounds
|
undefined |
如果设置,瓦片将只在设置的
LatLngBounds
内被加载。
|
minZoom
|
Number |
0 |
此图层将显示的最小缩放级别(包括最小) |
maxZoom
|
Number |
undefined |
此图层将显示的最大缩放级别(包括最大) |
maxNativeZoom
|
Number |
undefined |
瓦片源可用的最大缩放数。如果指定,所有缩放级别高于
maxNativeZoom 的图块将根据
maxNativeZoom 的缩放级别进行加载并自动缩放。
|
minNativeZoom
|
Number |
undefined |
瓦片源可用的最小缩放数。如果指定,所有缩放级别小于
minNativeZoom 的图块将根据
minNativeZoom 的缩放级别进行加载并自动缩放。
|
noWrap
|
Boolean |
false |
该图层是否被包裹在逆子午线周围。如果为
true ,则 GridLayer
将只在低缩放级别下显示一次。当
map CRS 不环绕时无效。可与
bounds
结合使用以防止请求超出 CRS 限制的图块。
|
pane
|
String |
'tilePane' |
将添加到网格图层的Map pane |
className
|
String |
'' |
为瓦片图层指定的自定义类名。默认是空的。 |
keepBuffer
|
Number |
2 |
平移地图时,在卸载之前保留这么多行和列的图块。 |
选项 | 类型 | 默认值 | 说明 |
---|---|---|---|
attribution
|
String |
null |
归属控制中要显示的字符串,例如 "© OpenStreetMap 贡献者"。 它描述了图层数据,通常是对版权所有者和瓦片提供者的法律义务。 |
Events 事件
事件 | 数据 | 说明 |
---|---|---|
loading
|
Event
|
当网格图层开始加载瓦片时触发。 |
tileunload
|
TileEvent
|
当瓦片被移除时触发(例如,当瓦片离开屏幕时)。 |
tileloadstart
|
TileEvent
|
当请求瓦片并开始加载时触发。 |
tileerror
|
TileErrorEvent
|
当加载瓦片出现错误时触发。 |
tileload
|
TileEvent
|
当瓦片加载时触发。 |
load
|
Event
|
当网格图层加载所有可见瓦片时触发。 |
事件 | 数据 | 说明 |
---|---|---|
popupopen
|
PopupEvent
|
当绑定到该层的 popup 打开时触发 |
popupclose
|
PopupEvent
|
当绑定到该层的 popup 关闭时触发 |
事件 | 数据 | 说明 |
---|---|---|
tooltipopen
|
TooltipEvent
|
当绑定到该层的 tooltip 打开时触发。 |
tooltipclose
|
TooltipEvent
|
当绑定到该层的 tooltip 关闭时触发。 |
Methods 方法
方法 | 返回值 | 说明 |
---|---|---|
bringToFront()
|
this |
将瓦片图层置于所有瓦片图层的顶部。 |
bringToBack()
|
this |
将瓦片图层置于所有瓦片图层的底部。 |
getContainer()
|
HTMLElement |
返回包含该图层的瓦片的 HTML 元素。 |
setOpacity(
|
this |
改变网格图层的 opacity 。 |
setZIndex(
|
this |
改变网格图层的 zIndex 。 |
isLoading()
|
Boolean |
如果网格图层中的任何瓦片没有完成加载,则返回
|
redraw()
|
this |
清除该图层的所有瓦片,并再次请求它们。 |
getTileSize()
|
Point
|
将
tileSize option
规范化为一个点。由 |
扩展方法
方法 | 返回值 | 说明 |
---|---|---|
createTile(
|
HTMLElement |
只在内部调用,必须由扩展
|
方法 | 返回值 | 说明 |
---|---|---|
addTo(
|
this |
将图层添加到指定的地图或图层组(LayerGroup)。 |
remove()
|
this |
从当前处于活动状态的地图中删除图层。 |
removeFrom(
|
this |
从指定的地图中删除图层 |
removeFrom(
|
this |
从指定的
|
getPane(
|
HTMLElement |
返回代表地图上指定窗格的
|
getAttribution()
|
String |
由 |
方法 | 返回值 | 说明 |
---|---|---|
bindPopup(
|
this |
将一个弹出式窗口与传入的
|
unbindPopup()
|
this |
移除之前用 |
openPopup(
|
this |
在指定的
|
closePopup()
|
this |
如果与当前图层绑定的弹窗(popup)时打开的,则关闭当前弹窗。 |
togglePopup()
|
this |
根据当前状态,打开或关闭与该层绑定的弹出窗口。 |
isPopupOpen()
|
boolean |
如果与该层绑定的弹出窗口当前已打开,则返回
|
setPopupContent(
|
this |
设置绑定到该图层的弹出窗口的内容。 |
getPopup()
|
Popup
|
返回绑定到该图层的弹出窗口。 |
方法 | 返回值 | 说明 |
---|---|---|
bindTooltip(
|
this |
将工具提示(tooltip)绑定到传入的图层
|
unbindTooltip()
|
this |
移除之前用
|
openTooltip(
|
this |
在指定的
|
closeTooltip()
|
this |
如果该图层处于打开状态,则关闭绑定到该图层的工具提示。 |
toggleTooltip()
|
this |
根据当前状态打开或关闭绑定到该图层的工具提示。 |
isTooltipOpen()
|
boolean |
如果该层绑定的工具提示当前已打开,则返回
|
setTooltipContent(
|
this |
设置绑定到该层的工具提示的内容。 |
getTooltip()
|
Tooltip
|
返回绑定到该层的工具提示。 |
方法 | 返回值 | 说明 |
---|---|---|
on(
|
this |
为对象的特定事件类型添加一个监听函数( |
on(
|
this |
添加一组 type/listener,例如
|
off(
|
this |
移除一个先前添加的监听器函数。如果没有指定函数,它将从对象中删除该特定事件的所有监听器。请注意,如果您向
|
off(
|
this |
删除一组 type/listener |
off()
|
this |
移除该对象上所有事件的所有监听器。这包括隐含的附加事件。 |
fire(
|
this |
触发指定类型的事件。您可以选择提供一个数据对象——侦听器函数的第一个参数将包含其属性,事件可以选择性地传播到事件父级。 |
listens(
|
Boolean |
如果一个特定的事件类型有任何监听器连接到它,则返回
|
once(…)
|
this |
与 |
addEventParent(
|
this |
向父级
|
removeEventParent(
|
this |
删除之前向父级
|
addEventListener(…)
|
this |
同 |
removeEventListener(…)
|
this |
同 |
clearAllEventListeners(…)
|
this |
同 |
addOneTimeEventListener(…)
|
this |
同
|
fireEvent(…)
|
this |
同
|
hasEventListeners(…)
|
Boolean |
其他API
Leaflet中文API文档手机(v.19版本)参考:《Leaflet中文API文档手机(v.19版本)》
相关阅读
声明
1.本文所分享的所有需要用户下载使用的内容(包括但不限于软件、数据、图片)来自于网络或者麻辣GIS粉丝自行分享,版权归该下载资源的合法拥有者所有,如有侵权请第一时间联系本站删除。
2.下载内容仅限个人学习使用,请切勿用作商用等其他用途,否则后果自负。
GridLayer
的图层应重新实现以下方法。