Map 构造与属性
类型 / 参数 / 返回值 / 用法 · 右侧为本页导航
自定义 本库 API
OL OpenLayers
融合 自定义与 OL 混用
Map 构造与属性
全局配置 · Map 构造函数
new Map(domId, options)
- 类型:
constructor - 归属:自定义(内部创建 OL
Map/View) - 参数:
{string} domId— 地图容器元素的id(传给ol/Map的target){Object} options— 见下方选项表。融合:会Object.assign进ol/View,因此 OL View 合法字段(如maxZoom)也可直接传入
- 返回值:
Map业务实例 - 用法:
const map = new Map('map', {
centerX: 116.4,
centerY: 39.9,
zoom: 12,
wkid: 3857,
maxZoom: 18, // 同时作为 OL View 选项
overview: true,
callback: { layersReadyCallback() {} }
});
- 融合说明:
this.map = new ol/Map(...)this.map.business = this(事件反查)viewOptions = Object.assign({ center, constrainResolution, enableRotation, maxZoom }, options)
options 选项
centerX / centerY
- 类型:
number - 必填:是(常规用法)
- 说明:初始中心坐标,写入 View 的
center: [centerX, centerY]。在wkid: 3857下一般为 Web 墨卡托米制坐标。
zoom
- 类型:
number - 归属:融合(OL View)
- 说明:初始缩放级别。
wkid
- 类型:
number | string - 默认值:业务侧通常传
3857 - 说明:
3857:Web 墨卡托,不注册自定义投影4326/4490/4549:内置 proj4 定义,注册为custom- 其它:当作 proj4 定义串使用
- 用法:
new Map('map', { centerX: 120.1, centerY: 30.2, zoom: 10, wkid: 4326 });
origin
- 类型:
number[] - 说明:自定义投影下瓦片原点,挂到
projection.origin,供 ArcGIS 切片等使用。
maxZoom / minZoom / constrainResolution / enableRotation / …
- 类型:见 OL View
- 归属:OL(经
Object.assign传入) - 默认值:本库默认
constrainResolution: true、enableRotation: false、maxZoom: 18
baseLayers
- 类型:
{ [baseKey: string]: Array<BaseLayerOption> } - 说明:底图分组。每个
BaseLayerOption至少含type(如OSMLayer、GaodeLayer、TDTLayer)。 - 用法:
baseLayers: {
osm: [{ type: 'OSMLayer', layerType: 'org' }],
gaode: [{ type: 'GaodeLayer', layerType: 'raster' }]
},
initBaseLayer: 'osm'
initBaseLayer
- 类型:
string - 说明:初始可见的底图组 key,对应
baseLayers的键名。
fixedLayers / fixedLayerCodes
- 类型:
Array<Object>/Array<string> - 说明:固定叠加层及其初始可见 code 列表。
overview
- 类型:
boolean | string - 默认值:不启用
- 说明:为真时创建 OL
OverviewMap;若为字符串,追加到 CSS class。实例挂在map.overview,并带自定义overview.baseLayers。
callback
- 类型:
Object - 说明:业务回调集合,见下一节。
codeField
- 类型:
string - 默认值:
'objCode' - 说明:要素业务主键字段名,点查 / 高亮 / 编辑共用。
allFields
- 类型:
boolean | string - 默认值:
false - 说明:
true:点查返回全部字段false:仅查codeFieldstring:作为 WFSpropertyName
imageBase
- 类型:
string - 说明:图标等静态资源基路径。
postGIS
- 类型:
boolean - 说明:写服务 / GeoServer 相关行为开关。
refreshLayers
- 类型:
boolean - 说明:为真时,分辨率变化清空矢量瓦片 source(
initLayers内绑定)。
callback 选项
业务回调挂在构造函数 options.callback 上。
layersReadyCallback
- 类型:
Function - 参数:无
- 说明:
initLayers完成建层、创建测量/绘制工具后调用。 - 用法:
callback: {
layersReadyCallback() {
map.showLayers(['pipe', 'valve']);
}
}
clickCallback
- 类型:
Function - 参数:
{Array} features— 命中的业务要素摘要(实现依赖内部_clickFun)
- 说明:地图点击查询到要素后回调(需
clickMap === true)。
extentChangeCallback
- 类型:
Function - 说明:若提供,则监听 View
change,视野变化时触发。
实例属性
以下属性在 new Map 之后可用。
map
- 类型:
ol/Map - 归属:OL
- 说明:底层 OpenLayers 地图。完整 OL API 均可通过它调用。
- 用法:
const view = map.map.getView();
map.map.on('moveend', () => console.log(view.getZoom()));
- 注意:直接
map.map.addLayer(layer)不会写入map.layers,业务方法可能找不到该层。业务图层请用initLayers/addLayer。
layers
- 类型:
Object - 归属:自定义
- 说明:图层字典。常见键:
baseLayers:{ [type]: ol/layer/Layer[] }highlight:高亮层geoserver/arcgis:聚合服务层[layerCode]:业务图层实例
- 用法:
map.layers['valve'].setVisible(true); // OL 方法挂在自定义图层实例上
businessLayers
- 类型:
Object | undefined - 说明:
initLayers之后按code存储的业务配置(含type、serviceAddress、parameter等)。
projection
- 类型:
proj4.Proj | undefined - 归属:融合
- 说明:
wkid !== 3857时存在;可能带自定义origin。
overview
- 类型:
ol/control/OverviewMap | undefined - 归属:融合
- 说明:鹰眼控件;另有自定义
overview.baseLayers。
initView
- 类型:
{ center: number[], zoom: number } - 说明:初始视图,供
resetMap()使用。
codeField
- 类型:
string - 默认值:
'objCode' - 说明:要素业务主键字段名。点查、高亮、编辑等共用。构造时由
options.codeField写入。
allFields
- 类型:
boolean | string - 默认值:
false - 说明:
true:点查返回全部字段false:仅查codeFieldstring:作为 WFSpropertyName
- 来源:构造选项
options.allFields
imageBase
- 类型:
string | undefined - 说明:图标等静态资源基路径。构造时由
options.imageBase写入;未传则为undefined。
postGIS
- 类型:
boolean | undefined - 说明:为
true时启用与 GeoServer/PostGIS 写服务相关的行为。仅当构造传入options.postGIS时存在。
refreshLayers
- 类型:
boolean | undefined - 说明:为
true时,initLayers后会在分辨率变化时清空矢量瓦片 source。仅当构造传入options.refreshLayers时存在。
clickMap
- 类型:
boolean - 默认值:
true - 说明:为
false时抑制地图点查(绘制/分析过程中常被临时关闭)。
callback
- 类型:
Object - 说明:构造传入的回调引用。
measureTool / drawSearchTool
- 类型:
Measure/DrawSearch - 说明:
initLayers后创建。
track / pipeInspectionTool
- 类型:
Track/Inspection | undefined - 说明:对应工厂方法创建后挂载。