栏目分类:
子分类:
返回
名师互学网用户登录
快速导航关闭
当前搜索
当前分类
子分类
实用工具
热门搜索
名师互学网 > IT > 软件开发 > Web开发 > JavaScript

从要素图层上查询要素

JavaScript 更新时间: 发布时间: IT归档 最新发布 模块sitemap 名妆网 法律咨询 聚返吧 英语巴士网 伯小乐 网商动力

从要素图层上查询要素

需要实现的功能有:

1、图上点击要素会出现自定义的信息窗口

2、将视图内的要素显示到右侧的标签中

3、点击右侧的标签,定位到指定要素视图

========================================================

1、图上点击要素会出现自定义的信息窗口——注意书写顺序,不规范结果是出不来的

var map = new Map({

  basemap:"dark-gray"

});

var view = new MapView({

  container:"viewDiv",

  map:map,

  center:[-73.950, 40.702],

  zoom:13

});

var popupTemplate = {

  title:"Marriage in NY, Zip Code: {ZIP}",

  content:[{

    type:"fields",

    fieldInfos:[{

      fieldName:"MARRIEDRATE",

      label:"% Married",

      format:{places:0,digitSeparator:true}

    },...]

  }]

}

var featurelayer = new FeatureLayer({

url:"https://services.arcgis.com/V6ZHFr6zdgNZuVG0/ArcGIS/rest/services/NYCDemographics1/FeatureServer/0",

  outFields:["*"],

  popupTemplate:popupTemplate

});

map.add(featurelayer);

2、将视图内的要素显示到右侧的标签中

——定义标签:

  

        

  • Loading…
  •   

——查询

var nycContent = document.getElementById("nyc");

view.whenLayerView(featurelayer).then(function(layerview){  

  layerview.watch("updating",function(value){

    if(!value){

      layerview.queryFeatures({

        geometry:view.extent,

        returnGeometry:true

      }).then(function(results){

        var graphics = results.features;

        var frag = document.createdocumentFragment();  //先存放到一个整体里

        graphics.forEach(function(result,index){

          var name = result.attributes.ZIP+"("+result.attributes.PO_NAME+")";

          var li = document.createElement("li");

          li.textContent = name;  //显示的内容

          li.classList.add("panel-result");  //用于修改样式

          li.setAttribute("data-result-id",index);

          li.appendChild(frag);

        });

        nycContent.innerHTML = "";  //先将初始的内容全部删除

        nycContent.appendChild(frag);  //再加入新的元素

      })

    }

  })

});

3、点击右侧的标签,定位到指定要素视图

nycContent.addEventListener("click",function(event){

  var resultId = event.target.getAttribute("data-result-id");

  var result = resultId && graphics && graphics[parseInt(resultId,10)];

  if(result){

    view.goTo(result.geometry.extent.expand(2)).then(function(){

      view.popup.open({

        features:[result],

        location:result.geometry.centroid

      })

    })

  }

});

作者:yangol

原文链接:https://www.cnblogs.com/GIS-Yangol/p/10424029.html


转载请注明:文章转载自 www.mshxw.com
本文地址:https://www.mshxw.com/it/245895.html
我们一直用心在做
关于我们 文章归档 网站地图 联系我们

版权所有 (c)2021-2022 MSHXW.COM

ICP备案号:晋ICP备2021003244-6号