arcgis添加featerlayer图层并添加弹窗

一. 普通弹窗

// 配置弹窗内容

function setPopupTemplate () {

// 积水点

  return {

titleExp:'$feature.name',

title:'{name}',

content: [{

type:'fields',

fieldInfos: [

{fieldName:'regionName',label:'区域' },

{fieldName:'name',label:'积水点名称' },

{fieldName:'pondingCondition',label:'积水点情况' },

{fieldName:'manageUnit',label:'管理单位' },

{fieldName:'originCode',label:'来源' },

{fieldName:'createTime',label:'上报时间' },

{fieldName:'annual',label:'年度' },

{fieldName:'address',label:'地址' }

]

}]

}

},

// 配置弹窗字段

function setFields () {

return [

{name:'regionName',alias:'区域',type:'string' },

{name:'name',alias:'积水点名称',type:'string' },

{name:'pondingCondition',alias:'积水点情况',type:'string' },

{name:'originCode',alias:'来源',type:'string' },

{name:'createTime',alias:'上报时间',type:'string' },

{name:'annual',alias:'年度',type:'string' },

{name:'address',alias:'地址',type:'string' },

{name:'manageUnit',alias:'管理单位',type:'string' }

]

},

// 配置图层显示点(图标)

function setRenderer () {

const symbol = {

type:'picture-marker',

url:require('@/assets/images/amap/积水点.png'),

width:'24px',

height:'24px'

  }

return {

type:'simple',

symbol:symbol

  }

}

// 设置图层

function setPoint (data, key) {

const graphics = []

let graphic

  const featureLayer =new this.$esri.FeatureLayer()

const popupTemplate = setPopupTemplate()

const fields = setFields()

if (data.length ===0) {

return console.info('data为空')

}

// 装载数据

  for (let i =0;i < data.length;i++) {

graphic =new this.$esri.Graphic({

geometry: {

type:'point',

longitude: data[i].longitude,

latitude: data[i].latitude

      },

attributes: data[i]

})

graphics.push(graphic)

}

/**

* 设置feature属性

*/

  featureLayer.objectIdField ='id'

  featureLayer.geometryType ='point'

  featureLayer.source =graphics

  featureLayer.fields =fields

  featureLayer.outFields = ['*']

featureLayer.popupTemplate =popupTemplate

  featureLayer.renderer = setRenderer()

featureLayer.labelingInfo = {

labelExpressionInfo: {

expression:popupTemplate.titleExp

    },

labelPlacement:'above-center'

  }

return featureLayer

},

// 添加图层,自行根据自己代码添加

this.currentLayer =this.setPoint(data.data,'memberMap')

JTMapKit.mapView.map.layers.add(this.currentLayer)

你可能感兴趣的:(arcgis添加featerlayer图层并添加弹窗)