feature:代码初始化。

This commit is contained in:
tianyongbao
2024-04-19 09:36:13 +08:00
commit 2f89616d14
454 changed files with 111421 additions and 0 deletions

91
src/utils/l7map.js Normal file
View File

@@ -0,0 +1,91 @@
import { Scene, RasterLayer, MarkerLayer, Marker } from '@antv/l7'
import { Map } from '@antv/l7-maps'
/**
* 初始化创建地图
* @param { string } id
* @param { config } object
*/
export function initMap(id, config) {
return new Promise((resolve, reject) => {
const scene = new Scene({
id,
logoVisible: false,
map: new Map({
...config
})
})
window.scene = scene
resolve(scene)
})
}
/**
* 添加底图
* 根据数组index值控制图层显示层级
* @param { array } arr
*/
export function initLayer(arr) {
arr.map((item, index) => {
const layer = new RasterLayer({
zIndex: index,
name: item.name
}).source(item.url, {
parser: {
type: 'rasterTile',
tileSize: 256
}
})
window.scene.addLayer(layer)
})
}
/**
* 添加自定义点图层
* 数据对象 [{longitude: '', latitude: ''}, {longitude: '', latitude: ''}]
* @param { array } arr
* 图层配置: { zIndex: 100, name: ''}
* @param { object } layerAttr
* 自定义模板样式: {widht: '', height'', ......}
* @param { object } style
* 事件名称: ['click', 'mouseover']
* @param { array } eventArr
*/
export function createMarker(arr, config) {
const markerLayer = new MarkerLayer(config.layerAttr)
arr.map((item) => {
// 创建marker
if (item.longitude && item.latitude) {
const marker = new Marker({
element: createMakerElement(item, config.layerAttr, config.style),
extData: item
}).setLnglat([item.longitude, item.latitude])
// 绑定鼠标事件
// config.eventArr.map((event) => {
// marker.on(event, (e) => {
// eventHub.emit(config.layerAttr.name + '-' + event, e)
// })
// })
markerLayer.addMarker(marker)
}
})
window.scene.addMarkerLayer(markerLayer)
return markerLayer
}
/**
* 创建模板
* makre的数据源
* @param { object } item
* 图层属性:根据图层名称 使用不同的自定义模板
* @param { layerAttr } object
* 自定义模板样式和图标名称
* @param { object } style
*/
export function createMakerElement(item, layerAttr, style) {
// 防火分区
if (layerAttr.name === 'accident') {
const el = document.createElement('div')
el.innerHTML = `<div style="height: ${style.height};width:${style.width};"><img src="/image/icon/${item.image}.png" style="width:100%;height:100%;"></div>`
return el
}
}
export function destoryScene() {
window.scene.destroy()
}