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 ...
随机推荐
- Java生鲜电商平台-生鲜系统中商品订单系统售后系统设计
Java生鲜电商平台-生鲜系统中商品订单系统售后系统设计(服务订单履约系统) 说明: 电商之下,我们几乎能从电商平台上买到任何我们日常需要的商品,但是对于很多商品来说,用户购买发货后,只是整个交易流程 ...
- JS---案例:协议按钮禁用(倒计时)
案例:协议按钮倒计时和禁用 <textarea name="texta" id="" cols="30" rows="10& ...
- Shell(七):文件包含
和其他语言一样,Shell 也可以包含外部脚本(类似python中import的功能).这样可以很方便的封装一些公用的代码作为一个独立的文件. Shell 文件包含的语法格式如下: . filenam ...
- linux中关于权限的一些事
权限这个东西对于初学者来说可能会有点陌生,不过不要紧,看完下面的讲解应该会对你有一定的帮助 权限rwx rwxrwxrwx u g o a r:可读 4 w: ...
- 2019前端面试系列——CSS面试题
盒模型 /* 红色区域的大小是多少?200 - 20*2 - 20*2 = 120 */ .box { width: 200px; height: 200px; padding: 20px; marg ...
- Java描述设计模式(14):解释器模式
本文源码:GitHub·点这里 || GitEE·点这里 一.解释器模式 1.基础概念 解释器模式是对象的行为模式.给定一个语言之后,解释器模式可以定义出其文法的一种表示,并同时提供一个解释器.客户端 ...
- asp.net core使用serilog将日志推送到腾讯云日志服务
为什么是serilog? Serilog是 .NET 中最著名的结构化日志类库. 基于日志事件log events,而不是日志消息log message. 你可以将日志事件格式化为控制台的可读文本或者 ...
- 阿里蒋晓伟谈计算引擎Flink和Spark的对比
本文整理自云栖社区之前对阿里搜索事业部资深搜索专家蒋晓伟老师的一次采访,蒋晓伟老师,认真而严谨.在加入阿里之前,他曾就职于西雅图的脸书,负责过调度系统,Timeline Infra和Messenger ...
- Git实战指南----跟着haibiscuit学Git(第八篇)
笔名: haibiscuit 博客园: https://www.cnblogs.com/haibiscuit/ Git地址: https://github.com/haibiscuit?tab=re ...
- Dynamics CRM通过定制应用程序功能区为符合条件的实体表单增加按钮
关注本人微信和易信公众号: 微软动态CRM专家罗勇 ,回复167或者20151029可方便获取本文,同时可以在第一时间得到我发布的最新的博文信息,follow me! 前面的博文都是为一个实体添加按钮 ...