放纵了几天,又有了学习的动力。今天实现了利用对 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. 搭建gogs

    https://blog.csdn.net/hwm_life/article/details/82969005 服务器环境 CentOS 7 64位 安装Gogs所需的其它环境 需要安装的依赖有Ngi ...

  2. 日志一直打印 DEBUG o.s.amqp.rabbit.listener.BlockingQueueConsumer

    <?xml version="1.0" encoding="UTF-8"?> <configuration> <logger na ...

  3. Keras中间层输出的两种方式,即特征图可视化

    训练好的模型,想要输入中间层的特征图,有两种方式: 1. 通过model.get_layer的方式.创建新的模型,输出为你要的层的名字. 创建模型,debug状态可以看到模型中,base_model/ ...

  4. springboot(九)-log配置

    spring项目放到tomcat中运行,我们可以在tomcat的logs文件夹下面生成log文件.那么我们的springboot项目没有放到系统安装的tomcat容器中,怎么设置生成log文件呢? 有 ...

  5. linux 查看进程启动时,用户的工作目录

    在linux下查看进程大家都会想到用 ps -ef|grep XXX可是看到的不是全路径,怎么看全路径呢?每个进程启动之后在 /proc下面有一个于pid对应的路径例如:ps -ef|grep pyt ...

  6. 转: 将Eclipse代码导入到AndroidStudio的两种方式 ,测试了方法2,成功。

    蛋疼,不知道为什么我的eclipse的logcat总是莫名其妙的显示一堆黄色字体的字,看不懂的那种,如下图: 然后查了一下资料,说可能是adt版本太低,手机系统太高. 然后本来想升级adt,但是各种折 ...

  7. Java学习之路(四):面向对象

    Java中的面向对象 概念:面向对象的原本的意思是“”万物皆对象“” 面向对象思想的特点: 是一种更符合我们思想习惯的思想,将复杂的事情简单化 使我们角色发生了转换,将我们从执行者变成了指挥者 面向对 ...

  8. 028-applicationContext.xml配置文件

    版本一 <?xml version="1.0" encoding="UTF-8"?> <beans xmlns:xsi="http: ...

  9. linux mint 18.1 安装nvidia显卡驱动

    原文地址 http://www.gamersonlinux.com/forum/threads/updating-nvidia-drivers-mint.1746/ 主要步骤很简答 就是将ppa仓库地 ...

  10. 【Lua】linux下lua+mod_lwt环境搭建

    Lua 是一个小巧的脚本语言.它具有轻量级.可扩展等优势.它可以作为一个强大.轻量的脚本语言,供任何需要的程序使用. LWT (Lua Web Tools) 可让你使用 Lua 开发 Web 应用,并 ...