放纵了几天,又有了学习的动力。今天实现了利用对 FeatureLayer 进行属性查询在地图上进行跳转。

  一、我下载了一幅浙江省的县界面地图,存在NAME字段,利用Name就能进行查询了:

var name = tb.value;
if(name!="")
{
var query = new esri.tasks.Query();
query.where = "NAME = '"+name+"'";
fl.queryFeatures(query, function (featureset) {
var a =featureset.features[0].geometry.getExtent();
map.setExtent(a);
});
}

  备注:FeatureLayer.queryFeatures 返回的不是 Feature 的一个集合,需要注意的是它本身就是单独的一个 Object ,而不是单纯的 Arry[] ,一开始没仔细看,半天取不出数据。不知道能不能进行模糊查询,希望可以,不然真的不方便啊。再试试...

  二、很简单的例子给大家看看:

<!DOCTYPE html>
<html>
<head>
<meta charset="utf-8">
<title>Query Demo</title>
<link rel="stylesheet" href="http://js.arcgis.com/3.10/js/dojo/dijit/themes/tundra/tundra.css">
<link rel="stylesheet" href="http://js.arcgis.com/3.10/js/esri/css/esri.css">
<script type="text/javascript" charset="utf-8" src="http://js.arcgis.com/3.10/"></script>
<script type="text/javascript" charset="utf-8" src="js/dojo.js"></script>
<script type="text/javascript" charset="utf-8">
require([
"esri/map", "esri/layers/FeatureLayer",
"esri/tasks/query", "esri/TimeExtent","esri/tasks/query",
"dojo/number", "dojo/date/locale", "dojo/dom","dojo/on",
"dojo/_base/array", "dojo/store/Memory",
"dgrid/OnDemandGrid", "dojo/domReady!"
], function()
{
//初始化地图控件
var map = new esri.Map("mapdiv");
map.setBasemap("osm");
var bounds = new esri.geometry.Extent({
"xmin":118.363523,"ymin":29.219302,"xmax":119.508848,"ymax":30.073848,
"spatialReference":{"wkid":4326}});
map.setExtent(bounds);
//初始化图层
var durl = "http...MapServer";
var dl = new esri.layers.ArcGISDynamicMapServiceLayer(durl);
var furl = "http...MapServer/0";
var fl = new esri.layers.FeatureLayer(furl,{outFields: ["*"],opacity: 0});
map.addLayer(dl);
map.addLayer(fl);
//注册Go点击事件
var btn = document.getElementById("query");
btn.onclick = function(){
var tb = document.getElementById("val");
var name = tb.value;
if(name!="")
{
var query = new esri.tasks.Query();
query.where = "NAME = '"+name+"'";
fl.queryFeatures(query, function (featureset) {
var a =featureset.features[0].geometry.getExtent();
map.setExtent(a);
});
}
}
});
</script>
</head>
<body>
<div id="tolbox">
Name:
<input type="text" name="val" id="val" />
<input type="button" name="query" id="query" value="Go" />
</div>
<div id="mapdiv" style="width: 600px; height: 600px; background-color: #FF8F8F;"></div>
</body>
</html>

效果:

利用 Task\Query 实现定位 , FeatureLayer 的属性查询的更多相关文章

  1. html利用锚点实现定位代码实例

    本章节介绍介绍一下如何利用锚点实现定位,使用锚点实现定位是html固有的功能,当然比较简单,也实现了基本的功能,但是功能相对简单一些,如果想要实现平滑的定位可以参阅jquery实现的点击页面动画方式平 ...

  2. 利用media query让背景图适应不同分辨率的设备

    随着上网方式的多样化,用户选择上网的工具不再仅是PC,而可以是手机,或者平板电脑.随之而来的问题是如何让网页适应不同分辨率,这给前端工程师们带来了新的挑战,其中重要的一点是如何让图片能在不同的分辨率下 ...

  3. Arcgis for Js之featurelayer实现空间查询和属性查询

    空间查询和属性查询是常用的两种对数据的检索与查询方式,在本节,将讲述Arcgis for Js下如何实现featurelayer的这两种查询方式,先贴图给大家看看: 实现界面 属性查询 空间查询 看完 ...

  4. 【框架】利用Spring的BeanPostProcessor来修改bean属性

    一.BeanPostProcessor是什么?什么时候触发?可以用来做什么? 1.它是什么? 首先它是一个接口,定义了两个方法: public interface BeanPostProcessor ...

  5. 利用flashback query 恢复表数据

    flashback query可以查询过去某个时间点对象的状态,从而可以利用此来进行恢复数据 1 准备测试数据 用普通用户创建一个表,表中插入部分数据: SQL> show user USER ...

  6. C#利用反射来判断对象是否包含某个属性的实现方法

    本文实例展示了C#利用反射来判断对象是否包含某个属性的实现方法,对于C#程序设计人员来说有一定的学习借鉴价值. 具体实现代码如下: /// <summary> /// 利用反射来判断对象是 ...

  7. AE开发—利用IQueryFilter接口进行属性查询

    在ArcGis Engine二次开发过程中,经常会需要用到查询统计的功能,而IQueryFilter是最常见的属性字段查询接口,可以用来做一些简单的查询工作. 现在有一些公交站点和公交路线的数据,可视 ...

  8. ArcGIS Engine开发之属性查询

    属性查询即基于空间数据的属性数据的查询,通过用户提交SQL语言中的where语句定义的查询条件,对属性数据进行搜索,从而得到查询结果的操作. 相关的类与接口 与属性查询功能相关的类主要有QureyFi ...

  9. <五>JDBC_利用反射及JDBC元数据编写通用的查询方法

    此类针对javaBean类写了一个通用的查询方法,List<javaBean> 通用查询更新中...:通过学习,深刻体会到学会反射就等于掌握了java基础的半壁江山! 一.使用JDBC驱动 ...

随机推荐

  1. Boost内存池使用与测试

    目录 Boost内存池使用与测试 什么是内存池 内存池的应用场景 安装 内存池的特征 无内存泄露 申请的内存数组没有被填充 任何数组内存块的位置都和使用operator new[]分配的内存块位置一致 ...

  2. 故障排查-linux命令测试端口连通性

    方法一:telnet法 预置条件:安装telnet step 1.rpm -qa telnet-server(无输出表示telnet-server未安装,则执行step2:否则执行step3) ste ...

  3. python学习,day3:集合的学习

    集合天生去重,另外集合非常便于两组数字的取交集,并集等计算 # coding=utf-8 # Author: RyAn Bi list_1 =[1,2,3,4,5,6,7] list_1 =set(l ...

  4. 2018牛客多校6 - I Team Rocket KD树维护空间

    题意:给出n条铁路区间\([L,R]\),共有m个boom依时间顺序放置在\(k_i\)中,区间与\(k_i\)有交集的都被炸掉 求每次炸掉的铁路个数和最后输出所有id被炸的时间点 炸弹能炸到的区间满 ...

  5. # js设置键名和键值de坑

    js设置键名和键值 let obj1 = {'jifeng': 60, 'lilu': 59, 'hongyan': 51, 'donghan': 4, 'liudan': 18, 'liuhaiya ...

  6. java 接口的学习

    1   什么是接口 接口是一种引用数据类型.使用interface声明接口,形式:  public interface 接口名称{} 1.1.1 接口的特性 [1] 接口中可以声明属性.接口中定义的所 ...

  7. 关于DES加密强制更新版(4.22)

    数据加密算法(Data Encryption Algorithm,DEA)是一种对称加密算法,很可能是使用最广泛的密钥系统,特别是在保护金融数据的安全中,最初开发的DEA是嵌入硬件中的.通常,自动取款 ...

  8. Macaca 等待机制

    看代码注释todo 写博客 服务写脚本开吧 , 因为窗口太多,  不知道要去哪关闭服务 开的话无所谓 , 哪里都能开 要确认是否有开 , 直接跑代码 下面的要先过 别人的环境 工具软件自己的问题 不支 ...

  9. 制作web安装程序

    出处:http://www/i-blog.cn/u/chenli/archives/2006/8.html 本文参考http://blog.csdn.net/libra1983/archive/200 ...

  10. React 同构开发(二)

    React 同构 所谓同构,简单的说就是客户端的代码可以在服务端运行,好处就是能极大的提升首屏时间,避免白屏,另外同构也给SEO提供了很多便利. React 同构得益于 React 的虚拟 DOM.虚 ...