ArcGIS api for JavaScript 3.27 FindTask查询功能
在ArcGIS API中查询功能是经常使用的,常用的三个查询分别是FindTask,QueryTask,IdentifyTask。它们各自都有自己的特点。
查询功能分为属性查询和空间查询

FindTask的官方API链接:
https://developers.arcgis.com/javascript/3/jsapi/findtask-amd.html
这个demo是查询某一个图层的一个属性,然后把结果撒点在地图上,鼠标移上去可以看到自定的infowindow
function doFind() {
// alert("QQQ");
require(
[
"esri/tasks/FindTask", "esri/tasks/FindParameters",
"esri/SpatialReference",
"esri/InfoTemplate",
"esri/geometry/Point",
"esri/graphic",
"esri/layers/GraphicsLayer",
"esri/geometry/webMercatorUtils",
"esri/symbols/SimpleFillSymbol",
"esri/symbols/SimpleLineSymbol",
"esri/symbols/SimpleMarkerSymbol",
"js/PointCluster",
"dojo/dom"
],function (
FindTask,
FindParameters,
SpatialReference,
InfoTemplate,
Point,
Graphic,
GraphicsLayer,
webMercatorUtils,
SimpleFillSymbol,
SimpleLineSymbol,
SimpleMarkerSymbol,
PointCluster,
dom,
) {
//要查询的数据源
var findTask = new FindTask("http://localhost:6080/arcgis/rest/services/GW_MAP_LF/MapServer");
//创建属性查询参数
var findParams = new FindParameters();
// findParams.returnGeometry = true;
//查询所有图层
findParams.layerIds = [23];
//查询指定的字段,如果不指定此参数,则查询所有的字段
findParams.searchFields = ["name"];
//是否返回几何对象
// findParams.returnGeometry = true;
//是否接受模糊查找,如果仅仅进行模糊查询,不需要where,设置这个参数就可以
// findParams.contains = true;
findParams.searchText = dom.byId("text").value;
if(map.graphicsLayerIds)
{
//map.infoWindow.hide();
clusterLayer.hide();
}
//执行查询
findTask.execute(findParams,function(results){
if(results){
console.log(results);
// var json = {title:"Attributes",content:"company: ${layerId}"};
var infoTemplate = new InfoTemplate();
//map.infoWindow.resize(width,height)
//map.infoWindow.resize(245,125);
/*地图显示样式*/
var graphicLayer = new GraphicsLayer();
var defaultsymbol = new SimpleMarkerSymbol(SimpleMarkerSymbol.STYLE_SQUARE, 10,
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
new dojo.Color([255,0,0]), 1),
new dojo.Color([0,255,0,0.25]));
for (var i = 0; i < results.length; i++) {
var pt = new Point(results[i].feature.attributes.x,results[i].feature.attributes.y,map.spatialReference);
infoTemplate.title="Attributes";
infoTemplate.content=results[i].feature.attributes.y;
var graphic = new Graphic(pt,defaultsymbol,null,infoTemplate);
graphicLayer.add(graphic);
}
map.addLayer(graphicLayer);
graphicLayer.on("mouse-over", function (evt) {
map.graphics.clear(); //使用地图图形层
var content = evt.graphic.getContent();
map.infoWindow.setContent(content);
var title = evt.graphic.getTitle();
map.infoWindow.setTitle(title);
var highlightGraphic = new Graphic(evt.graphic.geometry,defaultsymbol);
map.graphics.add(highlightGraphic);
map.infoWindow.show(evt.screenPoint,map.getInfoWindowAnchor(evt.screenPoint));
});
graphicLayer.on("mouse-out", function (evt) {
// map.graphics.clear();
// map.infoWindow.hide();
});
}else{
alert("查不到");
}
});
});
}
ArcGIS api for JavaScript 3.27 FindTask查询功能的更多相关文章
- ArcGIS api for javascript——用缓存区查询地图
描述 本例展示了如何在另外一个任务里使用一个任务的结果.单击地图查看被单击的点的1公里范围内的缓存(如果需要可以修改这个默认的缓存距离).也可以看缓存区的这些点的人口普查街区信息.单击一个点查看更多的 ...
- ArcGIS api for javascript——用图表显示查询结果
描述 本例展示了如何使用查询任务结果用去Google Chart API构建一个图表.当运行本例,点击一个郡县去看出现在一个无焦点的InfoWindow中的人口统计的数据的图表. 函数init创建了一 ...
- ArcGIS api for javascript——显示多个查询结果
描述 本例展示了在重叠的多边形处理查询的一种方式.单击一个石油和天然气的字段来查看地图上的高亮显示.如果仅仅点击一个要素,能够在单击一次来查看包含一些属性的InfoWindow.如果偶然单击到重叠的要 ...
- ArcGIS api for JavaScript 3.27 聚合(cluster)
基础聚合:只聚合,不显示聚合的数量 // Basic Clustering require([ "esri/map", "esri/layers/FeatureLayer ...
- ArcGIS api for JavaScript 3.27 按需显示需要的图层
实例:现有一图层服务,现需要动态显示该图层中的一部分内容:点击一个图例,只显示这个图例的内容,再点击别的图例,原来的内容不消失,再次点击已被点击的图例才会消失. 思路:setLayerDefiniti ...
- ArcGIS api for JavaScript 3.27 在线浏览的一些小部件
var navOption; var navToolbar;// 当前选择的操作 require( [ "esri/toolbars/navigation", "esri ...
- 基于ArcGIS API for Javascript的地图编辑工具
最近工作上需要用ArcGIS API for Javascript来开发一个浏览器上使用的地图编辑工具,分享一下一些相关的开发经验. 我开发的地图编辑工具是根据ESRI提供的例子修改而来的,参考的例子 ...
- ArcGIS API for Javascript 使用缓冲区结果做query查询出现“esri.config.defaults.io.proxyUrl 尚未进行设置”错误
1.前言 在研究ArcGIS API for JavaScript时会遇到这样的问题,比如我们在做缓冲区分析时,用分析的范围作为空间查询query的参数,在执行结果中总是会看到“esri.config ...
- ArcGIS api for javascript——加载查询结果,悬停显示信息窗口
转自原文 ArcGIS api for javascript——加载查询结果,悬停显示信息窗口 描述 本例在开始和地图交互前执行一个查询任务并加在查询结果.这允许用户鼠标悬停在任意郡县时立即见到Inf ...
随机推荐
- Hack the Zico2 VM (CTF Challenge)
下载链接: Download this VM here: https://download.vulnhub.com/zico/zico2.ova 端口扫描: ╰─ nmap -p1-65535 -sV ...
- ProcessExplorer 工具下载
链接:https://pan.baidu.com/s/1RPYkFqIMvBX2OKvTm0bgkw 提取码:4v5v
- MySQL密码正确却无法本地登录-1045 Access denied for user 'root'@'localhost' (using password:YES
MySQL密码正确却无法本地登录 报错如下: ERROR 1045 (28000): Access denied for user ‘root‘@‘localhost‘ (using password ...
- 测试人员必备之 mysql 常用命令学习指南
1.数据库连接 1.通过命令行连接数据库 [root@localhost ~]# mysql -u root -p Enter password: 输入以上命令,回车后输入密码,回车,出现 mysql ...
- QT--图灵机器人
QT--图灵机器人 1.登陆图灵机器人官网注册一个图灵机器人 2.获取apikey 3.pro文件添加 QT += core gui network 4.头文件 #include < ...
- 产品经理如何使用 CODING 进行项目规划
CODING 为您的企业提供从概念到软件开发再到产品发布的全流程全周期软件研发管理,为您的研发团队提供全程助力,帮助研发团队捋清需求.不断迭代.快速反馈并能实时追踪项目进度直到完成.同时 CODING ...
- 表单生成器(Form Builder)之mongodb表单数据查询——关联查询
这一篇接着记录一下查询相关的操作.想象一下,如果想要在一张表格中展示某些车辆的耗损和营收情况,我们该怎么处理.车辆.耗损.营收各自存储在一张表中,耗损和营收中冗余了车辆信息……我们便想到了关联查询.m ...
- 如何在linux终端创建文件
我们都知道可以用mkdir命令创建一个新的目录,但更多时候如果能直接创建一个文件(普通文件)会让人感觉更愉悦:这样就可以不用在去打开一个专门的创建文本文件的软件,然后还要设置文件名,保存路径那样的繁琐 ...
- oracle创建新用户并授予权限
1.同时按下WIN键+R键打开“运行”,输入cmd,回车进入命令提示符 2.输入“sqlplus”后按下回车键,提示输入用户名,输入“sys as sysdba”,按下回车,输入口令,即四-13中设置 ...
- QT QSplitter设置初始比例setStretchFactor失效解决
QSplitter如下为常用 设置显示比例 pRightSplitter=new QSplitter(Qt::Vertical); pRightSplitter->setMouseTrackin ...