map 的配置项 options
设置了地图的默认属性, Map.js中的配置项只是一部分,Leaflet的其他对象,比如Popup、Control.Zoom
,通过Map.mergeOptions
扩展了一些配置项。
export const Map = Evented.extend({
options: {
// @section Map State Options
// @option crs: CRS = L.CRS.EPSG3857
// 地图的坐标系,默认是平面的 3857. Don't change this if you're not
// sure what it means.
crs: EPSG3857,
// @option center: LatLng = undefined
// 地图的初始坐标中心
center: undefined,
// @option zoom: Number = undefined
// 地图的初始缩放级别
zoom: undefined,
// @option minZoom: Number = *
// 最小缩放级别,如果没有设置,且地图中有 `GridLayer` 或者 `TileLayer` ,那么地图就会使用各个 layer 的最小 zoom 级别
minZoom: undefined,
// @option maxZoom: Number = *
// 最大缩放级别,如果没有设置,且地图中有 `GridLayer` 或者 `TileLayer` ,那么地图就会使用各个 layer 的最大 zoom 级别
maxZoom: undefined,
// @option layers: Layer[] = []
// layer 数组,地图初始化后会被默认添加到 map 中
layers: [],
// @option maxBounds: LatLngBounds = null
// 限定 map 的试图范围, 如果用户把试图范围平移到限定范围之外,会自动平移回来。可以使用 setMaxBounds 方法动态设置限定范围.
maxBounds: undefined,
// @option renderer: Renderer = *
// 矢量数据的默认渲染方式,取决于浏览器支持情况是 `L.SVG` 和 `L.Canvas`
renderer: undefined,
// @section Animation Options
// @option zoomAnimation: Boolean = true
// 是否启用 zoom 动画。启用动画效果会使地图缩放看起来更加平滑,不会突变。除了Android 浏览器,在所有支持 css3 动画的浏览器里是默认是启用了的。
zoomAnimation: true,
// @option zoomAnimationThreshold: Number = 4
// 如果 zoom 变化一次超过这个值,就不会使变焦动画。
zoomAnimationThreshold: 4,
// @option fadeAnimation: Boolean = true
// 瓦片淡出动画是否启用。在所有支持 css3 动画的浏览器里是默认是启用了的。
fadeAnimation: true,
// @option markerZoomAnimation: Boolean = true
// zoom 缩放的时候是否对 marker 进行动画缩放, 如果禁用了,在 zoom 动画长度内 marker 会消失。在所有支持 css3 动画的浏览器里是默认是启用了的。
markerZoomAnimation: true,
// @option transform3DLimit: Number = 2^23
// 设置 CSS transform 变换的最大值,
// 除非对在调用 panBy 很大一个值之后图层显示的位置不对了,否则默认值一般不应该修改。
transform3DLimit: 8388608, // Precision limit of a 32-bit float
// @section Interaction Options
// @option zoomSnap: Number = 1
// 设置 map's 的缩放级别为这个值的倍数,特别是在调用 fitBounds() 方法或者进行双指缩放之后(这两个操作都会出现任意的 zoom level)。
// 默认情况下,缩放级别捕捉到最接近的整数,值越小粒度越细。
// 如果是0,则缩放级别不会捕捉到 zoomSnap 的倍数。
zoomSnap: 1,
// @option zoomDelta: Number = 1
// 在执行 zoomIn zoonOut 之后缩放级别变化多少。鼠标滚轮、键盘 + —,zoom control都适用。
// 如果要更细的粒度,可以设置值小于 1
zoomDelta: 1,
// @option trackResize: Boolean = true
// 浏览器窗口大小变化的时候,map 是否自动 resize,默认是 true。
trackResize: true
},
// ......
})