• ArcGIS api for javascript——查询没有地图的数据


    描述

    本例展示了用户能够从没有显示服务的地图服务查询数据。大部分地图服务包含属性信息的数据集,数据集能够被查询并显示在一个简单的列或表格里。 本例按提供的州名称查询USA人口普查数据,然后显示关于州的属性信息列表。

    代码创建了一个QueryTask和一个用做任务输入的 Query。注意QueryTask的构造函数需要地图服务里的图层的URL(http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/5)。 在URL结尾的数字5是地图目录里的州图层的索引号。要找到你自己的地图服务的URL及它们的图层索引,使用Services Directory

    注意query.returnGeometry被设置为false因为结果不需要被显示在地图上。outFields确定州图层中的那些字段被查到。

    当单击“Get Details”按钮,execute函数被调用。查询任务在被查询的图层的主要显示字段里搜索query.text,在这个图层里面是STATE_NAME字段。这就是为什么query.text被设置在文本框里输入的州名。如果想要输入任意SQL where子句,可以使用query.where代替query.text。

    查询指定的所有属性能作为参数传递给QueryTask,当查询完成时连同函数一起被调用。

    queryTask.execute(query,showResults);

    查询结果作为FeatureSet被传递给showResults函数。函数循环访问所有结果的属性并使用html为查询结果构建一个列表。然后这个HTML被写到"info" div中。

     1 <%@ page language="java" import="java.util.*" pageEncoding="utf-8"%>
     2 
     3 <!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN" "http://www.w3.org/TR/html4/strict.dtd">
     4 <html>
     5   <head>
     6     <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
     7     <meta http-equiv="X-UA-Compatible" content="IE=7" />
     8    
     9     <title>Query State Info without Map</title>
    10     
    11     
    12     <link rel="stylesheet" type="text/css" href="styles.css"
    13           href="http://serverapi.arcgisonline.com/jsapi/arcgis/1.6/js/dojo/dijit/themes/tundra/tundra.css">
    14     <script type="text/javascript" src="http://serverapi.arcgisonline.com/jsapi/arcgis/?v=1.6"></script>
    15     <script type="text/javascript" language="Javascript">
    16         dojo.require("esri.map");
    17         var queryTask,query;
    18         function init(){
    19             //生成查询
    20             queryTask = new esri.tasks.QueryTask("http://sampleserver1.arcgisonline.com/ArcGIS/rest/services/Demographics/ESRI_Census_USA/MapServer/5");
    21             
    22             //dojo.connect(queryTask,"onComplete",showResults);
    23             
    24             //建立查询过滤器
    25             query = new esri.tasks.Query();
    26             query.returnGeometry = false;//结果不显示在地图上
    27             query.outFields =  ["SQMI","STATE_NAME","STATE_FIPS","SUB_REGION",
    28         "STATE_ABBR","POP2000","POP2007","POP00_SQMI","POP07_SQMI",
    29         "HOUSEHOLDS","MALES","FEMALES","WHITE","BLACK","AMERI_ES","ASIAN",
    30         "OTHER","HISPANIC","AGE_UNDER5","AGE_5_17","AGE_18_21","AGE_22_29",
    31         "AGE_30_39","AGE_40_49","AGE_50_64","AGE_65_UP"];
    32         }
    33         
    34         function execute(stateName){
    35             query.text = stateName;
    36             //执行查询
    37             queryTask.execute(query,showResults);
    38         }
    39         
    40         function showResults(results){
    41             var s = "";
    42             for(var i=0,il=results.features.length;i<il;i++){
    43                 var featureAttributes = results.features[i].attributes;
    44                 for(att in featureAttributes){
    45                     s = s + "<b>" + att + ":</b>" + featureAttributes[att] + "<br>";
    46                 }
    47             }
    48             dojo.byId("info").innerHTML = s;
    49         }
    50         
    51         dojo.addOnLoad(init);
    52     </script>
    53   </head>
    54   
    55   <body>
    56     US state name:<input type="text" id="stateName" value="California"/>
    57     <input type="button" value="Get Details" onclick="execute(dojo.byId('stateName').value)"/>
    58     <br>
    59     <br>
    60     <div id="info" style="padding:5px;margin:5px;background-color:#eee;"></div>
    61   </body>
    62 </html>
  • 相关阅读:
    C++ 编译时字符串加密
    c#自动修复缺损和不规范的html
    C#下载网络资源(网页或文件)
    yum install 命令下载安装离线包
    C# Sql Server 数据库 传递 表值参数
    cximage 裁剪图片并背景透明
    centos 7.5 编译并运行 opencv 4.5.1 c++
    c++ freeimage 指定颜色透明
    c++ string 大小写转换
    opencv 裁剪图像
  • 原文地址:https://www.cnblogs.com/xiaotian-222/p/6515038.html
Copyright © 2020-2023  润新知