map.ts
// 事件对象
export const eventTarget: mars3d.BaseClass = new mars3d.BaseClass()
// 矢量数据图层
let graphicLayer: mars3d.layer.GraphicLayer
export const onMounted = (mapInstance: mars3d.Map) => {
map = mapInstance // 记录map
// 创建DIV数据图层
graphicLayer = new mars3d.layer.GraphicLayer()
map.addLayer(graphicLayer)
// 绑定popup 根据attr.type值判断打开哪个弹窗
graphicLayer.bindPopup(
(event: any) => {
const attr = event.graphic.attr || {}
const dom = "<div>123</div>"
return dom
},
{ offsetX: 265, offsetY: 120 }
)
//矢量数据图层添加监听 mars3d.EventType.click:矢量数据被点击
graphicLayer.on(mars3d.EventType.click, (e) => {
// 添加popupOpen事件传递给src\widgets\zhcs\tax-status\economy\index.vue中,用来更改图表
if (e.graphic?.options?.attr?.area) {
// 当popup显示时("popupOpen") 事件对象发送(fire)事件
eventTarget.fire("popupOpen", { key: e.grap