ArcGIS for js 4.x FeatureLayer 点选查询

2024-06-15 15:04

本文主要是介绍ArcGIS for js 4.x FeatureLayer 点选查询,希望对大家解决编程问题提供一定的参考价值,需要的开发者们随着小编来一起学习吧!

示例:

代码如下:

<template><view id="mapView"></view></template><script setup>
import "@arcgis/core/assets/esri/themes/light/main.css";
import Map from "@arcgis/core/Map.js";
import MapView from "@arcgis/core/views/MapView.js";
import TitleLayer from "@arcgis/core/layers/TileLayer.js";
import FeatureLayer from "@arcgis/core/layers/FeatureLayer.js"
import PopupTemplate from "@arcgis/core/PopupTemplate.js"
import Popup from "@arcgis/core/widgets/Popup.js";
import Locate from "@arcgis/core/widgets/Locate.js";
import Compass from "@arcgis/core/widgets/Compass.js";
import Graphic from "@arcgis/core/Graphic.js";
import SimpleFillSymbol from "@arcgis/core/symbols/SimpleFillSymbol.js";
import { onMounted } from "vue";onMounted(()=>{initMap();
});const initMap = function(){const map = new Map({basemap:{baseLayers:[new TitleLayer({url:"http://map.geoq.cn/arcgis/rest/services/ChinaOnlineCommunity_Mobile/MapServer"})]}});// 创建PopupTemplate实例var popupTemplate = new PopupTemplate({//title:"{objectid}",title:"<div style='color: red'>{objectid}</div>",content:`图斑类型:{tblx}<br/>图斑面积:{tbmj}<br>`});// 加载FeatureLayerconst featureLayer = new FeatureLayer({url:"http://116.141.0.114:48080/geoscene/rest/services/%E8%80%95%E4%BF%9D/%E5%8F%8C%E9%98%B3%E5%8C%BA%E5%9B%BE%E6%96%91/FeatureServer/0",outFields: ["*"], //加载所有要素字段opacity:0.5,//透明度//popupTemplate: TuCeng03TC, //加载模板,//definitionExpression: "",// 筛查labelsVisible:false,//禁用显示标注// 渲染renderer: {type: "simple",symbol: {type: "simple-fill",//simple-line(线)、simple-fill(面)style: "solid",// solid 全部填充、cross十字交错、diamond菱形、square矩形、triangle三角形color: [255,20,60, 0.4],outline: {color: [255, 0, 0, 1],width: 2,},},},// 配置popupTemplatepopupTemplate:popupTemplate//配置默认的信息模板-文本型/* popupTemplate:{//title:"{objectid}",title:"<div style='color: red'>{objectid}</div>",content:`图斑类型:{tblx}<br/>图斑面积:{tbmj}<br>`} *///配置默认的信息模板-表格型/*popupTemplate:{title:"{objectid}",content:[{type:"fields",fieldInfos:[{fieldName:"tblx",label:"图斑类型"},{fieldName:"tbmj",label:"图斑面积"}]}]}*/});// 添加featureLayer(两种方法都可以)//mapView.map.add(featureLayer);map.add(featureLayer);// 创建并配置信息窗口对象const popup = new Popup({visibleElements:{// 对可见元素进行配置collapseButton:false,// 禁用折叠按钮actionBar:false,// 禁用动作条closeButton:true// 打开右上角关闭按钮},//container:"popup_image",//设置自定义组件(类似mapView)dockOptions:{buttonEnabled:false,// 禁用停靠按钮// 弹窗位置position: "center",// 当窗口小于100*100像素时,固定弹出窗口breakpoint: {width: 100,height: 100}}});// mapView容器	const mapView = new MapView({// 长春坐标系center:[125.331345,43.8328],// 初始层级zoom:10,container:"mapView",map:map,constraints: {minZoom: 10,// 最小层级maxZoom: 19 // 最大层级},popup:popup// 关联popup});// 清除底部powered by ESRImapView.ui.remove("attribution");//mapView点击事件mapView.on(["click"],function(event){mapView.hitTest(event).then(function(response){let clickLayer = response.results.filter((result) => {return result.graphic.layer === featureLayer;});// 获取绘制let graphic = clickLayer[0].graphic;// 点击后定位//mapView.goTo(graphic);mapView.goTo({target:graphic,zoom:13})});});}</script><style lang="scss" scoped>#mapView{width: 100%;height:100vh;padding: 0;margin: 0;}</style>

定位也可以写成下面的方式:

	// 创建PopupTemplate实例var popupTemplate = new PopupTemplate({content:(feature)=>{// 定位mapView.goTo({target:feature.graphic,zoom:13});for(let key in feature.graphic.attributes){if(feature.graphic.attributes[key]){// 输出全部属性值console.log(feature.graphic.attributes[key]);}}}});

这篇关于ArcGIS for js 4.x FeatureLayer 点选查询的文章就介绍到这儿,希望我们推荐的文章对编程师们有所帮助!



http://www.chinasem.cn/article/1063787

相关文章

MySQL存储过程之循环遍历查询的结果集详解

《MySQL存储过程之循环遍历查询的结果集详解》:本文主要介绍MySQL存储过程之循环遍历查询的结果集,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言1. 表结构2. 存储过程3. 关于存储过程的SQL补充总结前言近来碰到这样一个问题:在生产上导入的数据发现

MySQL JSON 查询中的对象与数组技巧及查询示例

《MySQLJSON查询中的对象与数组技巧及查询示例》MySQL中JSON对象和JSON数组查询的详细介绍及带有WHERE条件的查询示例,本文给大家介绍的非常详细,mysqljson查询示例相关知... 目录jsON 对象查询1. JSON_CONTAINS2. JSON_EXTRACT3. JSON_TA

MYSQL查询结果实现发送给客户端

《MYSQL查询结果实现发送给客户端》:本文主要介绍MYSQL查询结果实现发送给客户端方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录mysql取数据和发数据的流程(边读边发)Sending to clientSending DataLRU(Least Rec

MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)

《MySQL复杂SQL之多表联查/子查询详细介绍(最新整理)》掌握多表联查(INNERJOIN,LEFTJOIN,RIGHTJOIN,FULLJOIN)和子查询(标量、列、行、表子查询、相关/非相关、... 目录第一部分:多表联查 (JOIN Operations)1. 连接的类型 (JOIN Types)

python编写朋克风格的天气查询程序

《python编写朋克风格的天气查询程序》这篇文章主要为大家详细介绍了一个基于Python的桌面应用程序,使用了tkinter库来创建图形用户界面并通过requests库调用Open-MeteoAPI... 目录工具介绍工具使用说明python脚本内容如何运行脚本工具介绍这个天气查询工具是一个基于 Pyt

MyBatis编写嵌套子查询的动态SQL实践详解

《MyBatis编写嵌套子查询的动态SQL实践详解》在Java生态中,MyBatis作为一款优秀的ORM框架,广泛应用于数据库操作,本文将深入探讨如何在MyBatis中编写嵌套子查询的动态SQL,并结... 目录一、Myhttp://www.chinasem.cnBATis动态SQL的核心优势1. 灵活性与可

Mybatis嵌套子查询动态SQL编写实践

《Mybatis嵌套子查询动态SQL编写实践》:本文主要介绍Mybatis嵌套子查询动态SQL编写方式,具有很好的参考价值,希望对大家有所帮助,如有错误或未考虑完全的地方,望不吝赐教... 目录前言一、实体类1、主类2、子类二、Mapper三、XML四、详解总结前言MyBATis的xml文件编写动态SQL

使用Python获取JS加载的数据的多种实现方法

《使用Python获取JS加载的数据的多种实现方法》在当今的互联网时代,网页数据的动态加载已经成为一种常见的技术手段,许多现代网站通过JavaScript(JS)动态加载内容,这使得传统的静态网页爬取... 目录引言一、动态 网页与js加载数据的原理二、python爬取JS加载数据的方法(一)分析网络请求1

在Java中基于Geotools对PostGIS数据库的空间查询实践教程

《在Java中基于Geotools对PostGIS数据库的空间查询实践教程》本文将深入探讨这一实践,从连接配置到复杂空间查询操作,包括点查询、区域范围查询以及空间关系判断等,全方位展示如何在Java环... 目录前言一、相关技术背景介绍1、评价对象AOI2、数据处理流程二、对AOI空间范围查询实践1、空间查

MySQL基本查询示例总结

《MySQL基本查询示例总结》:本文主要介绍MySQL基本查询示例总结,本文通过实例代码给大家介绍的非常详细,对大家的学习或工作具有一定的参考借鉴价值,需要的朋友参考下吧... 目录Create插入替换Retrieve(读取)select(确定列)where条件(确定行)null查询order by语句li