Map 图层

类型 / 参数 / 返回值 / 用法 · 右侧为本页导航

自定义 本库 API OL OpenLayers 融合 自定义与 OL 混用

Map 图层

Map 方法 · 图层管理

initLayers(businessLayers, tagLayers?, alarmList?)

map.initLayers({
  pipe: {
    code: 'pipe',
    type: '5',
    serviceAddress: 'water',
    serviceSublayerIndex: 0,
    parameter: JSON.stringify({ queryable: true })
  },
  hydrant: {
    code: 'hydrant',
    type: '1',
    minZoom: 12,
    label: { minZoom: 14, field: 'name' }
  }
});

businessLayers.type 一览

type含义底层
1 / CloudLayer点 + 飘窗CloudLayer → ol/layer/Vector
2/3ArcGIS 动态ImageArcGISRest + ImageLayer
4ArcGIS 切片自定义 Source + TileLayer
5GeoServer WMS 聚合ImageWMS(字典键常为 geoserver
6矢量瓦片VectorTileLayer
7SuperMap WMSWMS
9 / WMTSLayerWMTSol/source/WMTS
11 / GLayer通用矢量GLayer
12 / ClusterLayer聚合ClusterLayer
13 / ContourLayer等值ContourLayer
14 / EchartsLayerEChartsol-echarts
15 / HeatmapLayer热力ol/layer/Heatmap
16 / GeoTIFFLayer / TifLayer服务器 GeoTIFF 栅格WebGLTile + GeoTIFF
17 / GraphicLayerCanvas 分类线/点GraphicLayer → 自定义 ol/layer/Layer

addLayer(options)

map.addLayer({
  code: 'tempPoint',
  type: 'CloudLayer',
  minZoom: 10
});
map.drawPoint({
  tempPoint: [{ objCode: 'T1', gpsX: 13528430, gpsY: 3676466 }]
});

removeLayer(layerCode)

map.removeLayer('tempPoint');

displayLayer(layerCode, bool)

map.displayLayer('pipe', true);
map.displayLayer('hydrant', false);

showLayers(layerCodes)

map.showLayers(['pipe', 'valve', 'hydrant']);

showTagLayers(layerCodes, tagTypes)

map.showTagLayers(['pipe'], ['diameter', 'material']);

displayPartInLayer(data)

map.displayPartInLayer({
  hydrant: ['H1', 'H3'],
  pipe: ['P100']
});

displayPartByCondition(data)

map.displayPartByCondition({
  pipe: { caliber: 'DN200' },
  hydrant: [{ field: 'alarm', value: 1 }]
});

changeLayerStatus(layerCode, status)

map.changeLayerStatus('hydrant', 1);

changeLayerScope(data)


Map 方法 · 云图层(飘窗)

飘窗基于 OL Overlay;本库扩展了 Overlay.prototype.setVisible(融合)。

addCloud(layerCode, cloudData)

map.addCloud('hydrant', {
  objCode: 'H1',
  content: '<div class="cloud">栓体信息</div>'
});

addCloudLayer(options)

hideCloud(layerCode, objCode) / showCloud(layerCode, objCode)

map.hideCloud('hydrant', 'H1');
map.showCloud('hydrant', 'H1');

hideAllClouds(layerCode) / showAllClouds(layerCode, hideClouds?)

clearCloudLayer(layerCode)

addHighlightCloud(data) / destroyHighlightCloud(objCode)


Map 方法 · 高亮

clearHighlight()

map.clearHighlight();

highlightList(data, param?)

// 全量替换
map.highlightList(rows, { noMarker: true });

// 点闪烁
map.highlightList([{ objX: 13528430, objY: 3676466 }]);

// 线、点分两次写入(第二次不要再用 highlightList,否则会清空)
map.highlightList(lines, { canvas: true });
map.addHighlightList(points, { noMarker: true });

// 少量且要按序号点击显隐时,关闭 canvas
map.highlightList(rows, { canvas: false });

id 规则add / update / remove 依赖):objCodeidindex(加 line: / point: 前缀)→ 坐标拼串。有业务主键请带 objCode。Canvas 整层共用一套 lineColor

addHighlightList(data, param?)

map.addHighlightList(points, { noMarker: true });

updateHighlightList(data, param?)

map.updateHighlightList([{ objCode: 'P1', objX: 13528430, objY: 3676466 }]);

removeHighlightList(data)

map.removeHighlightList(['P1', 'L2']);
map.removeHighlightList([{ objCode: 'P1' }]);

triggerHighlight(index, type, cloudData?, options?, lineData?)

map.triggerHighlight(0, 'point', { html: '当前选中' });

resetHighlight() / hideHighlight() / showHighlight()

highlightGraphicInLayer(layerCode, objCode, noFeature?)

map.highlightGraphicInLayer('hydrant', 'H1');

Map 方法 · GLayer / 等值线

addGLayer(options)

map.addGLayer({ code: 'sketch', type: 'GLayer' });
map.layers.sketch.addPoint([13528430, 3676466], { fill: '#f00' }, 'A');

addGraphicLayer(options)

var layer = map.addGraphicLayer({
  code: 'deviceSketch',
  series: [
    { type: 'line', style: { type: 'solid', color: '#1890ff', width: 2 },
      data: [{ objCode: 'L1', objXStart: 13528430, objYStart: 3676466, objXEnd: 13528500, objYEnd: 3676500 }] },
    { type: 'circle', style: { type: 'dash' },
      data: [{ objCode: 'P1', objX: 13528430, objY: 3676466 }] }
  ]
});
layer.highlight(['L1', 'P1']);

也可用 initLayers / addLayertype: '17''GraphicLayer'

displayGLayer(layerCode, bool)

addContour(options) / cancelContour()

map.addContour({ /* 点值与样式 */ });
map.cancelContour();