arcgis for js Popup弹窗挂载vue组件

1.解决问题

点击图层里的要素时弹出popup,并在内容中content挂载业务组件,子组件中正常使用vue的生命周期与钩子函数。

2.实现方法

2.1.子组件Popup.vue

(这里只做简单的示例,可根据自己的业务需求设计组件)

<template>
  <div>
    {{obj}}
  </div>
</template>
<script>
  export default {
    components: {},
    props: ['obj'],
  }

2.2.父组件 MapView.vue(包含视图点击事件、popup打开与子组件挂载到popup)

  • 引入所需的
import TwoMap from '@/components/2D-map'
import Popup from './Popup'
import Vue from 'vue'
  • 视图点击事件声明
export function viewOnClickEventLOad(view, callback) {
  view.popup.autoOpenEnabled = false
  view.on('click', (event) => {
    view.hitTest(event).then(function(response) {
      if (response.results[0]) {
        callback({
          event,
          response,
        })
      }
    })
  })
}
  • 置空之前点击的高亮
export function removeHighlight(highlight) {
  if (highlight) {
    highlight.remove()
  }
  return null;
}
  • 视图点击以后的回调
viewOnClickEventLOad(self.view, ({event, response}) => {
  let graphic = response.results[0].graphic
  // 置空之前的高亮
  self.highlight = removeHighlight(self.highlight)
  // 高亮点击的要素
  self.view.whenLayerView(graphic.layer).then(function(lyrView) {
   self.highlight = lyrView.highlight(graphic)
  })
  self.view.goTo(graphic.geometry)
  self.openPopup(event.mapPoint, graphic)
});
  • 打开popup
openPopup(point, graphic) {
    let self = this;
    // 要素中的属性对象 graphic.attributes
    let name = graphic.attributes.name
    self.view.popup.open({
      title: name,
      location: point,
      content:'加载中...'
    })
    const p = Vue.extend(Popup)
    let vm = new p({
      propsData: {
        obj: '传参'
      }
    })
    vm.$mount();
    vm.$nextTick(()=>{
      self.view.popup.content = vm.$el
    })
  }
  • 3
    点赞
  • 7
    收藏
    觉得还不错? 一键收藏
  • 4
    评论
ArcGIS for JavaScript Vue 视频教程是一种通过视频方式来教授如何使用ArcGIS for JavaScript和Vue框架来创建交互式地图应用的教程。 ArcGIS for JavaScript 是一款由Esri开发的用于构建地图应用的JavaScript API。它提供了丰富的地图、图层、遥感影像和空间分析功能,能够帮助开发者构建出功能强大、可视化效果出众的地理信息系统。 Vue是一款流行的JavaScript前端框架,它的核心思想是响应式数据绑定和组件化开发。Vue的主要特点是易学、灵活和高效,它能够帮助开发者更快速地构建出交互式和可重用的界面组件ArcGIS for JavaScript Vue 视频教程主要介绍如何结合使用ArcGIS for JavaScript和Vue来创建地图应用。通过视频教程,开发者可以学习如何进行地图初始化、添图层、展示地图、进行空间查询、添交互等操作。 这些视频教程通常包括一系列教学视频,每个视频都会重点介绍某个具体的功能或操作。开发者可以按照自己的学习进度逐步学习和实践,从而逐渐掌握如何使用ArcGIS for JavaScript和Vue来构建出自己的地图应用。 通过视频教程,开发者可以更清晰地了解和学习如何使用ArcGIS for JavaScript和Vue。视频教程以实际操作为主,让开发者能够更直观地理解每个步骤和操作的含义和作用。同时,视频教程也提供了练习和示例代码,方便开发者进行实践和理解。 总之,ArcGIS for JavaScript Vue 视频教程是一种通过视频方式来教授如何使用ArcGIS for JavaScript和Vue框架来创建交互式地图应用的教程,它能够帮助开发者快速学习和掌握这两个优秀的技术,从而构建出功能强大、可视化效果出众的地理信息系统。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 4
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值