Identify要素

简介:
<!DOCTYPE html>
<html>
 
<head>
   
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
   
   
<meta name="viewport" content="initial-scale=1, maximum-scale=1,user-scalable=no">
   
<title>Identify Sample</title>

   
<link rel="stylesheet" href="https://js.arcgis.com/3.17/dijit/themes/claro/claro.css">
   
<link rel="stylesheet" href="https://js.arcgis.com/3.17/esri/css/esri.css">
   
<style>
      html
, body {
        height
: 98%;
        width
: 98%;
        margin
: 0;
        padding
: 5px;
     
}
   
</style>

   
<script src="https://js.arcgis.com/3.17/"></script>
   
<script>
     
var map, bldgResults, parcelResults, symbol;

      require
([
       
"esri/map",
       
"esri/layers/ArcGISDynamicMapServiceLayer",
       
"esri/symbols/SimpleFillSymbol",
       
"esri/symbols/SimpleLineSymbol",
       
"esri/tasks/IdentifyTask",
       
"esri/tasks/IdentifyParameters",
       
"dojo/on",
       
"dojo/parser",
       
"esri/Color",
       
"dijit/registry",
       
"dijit/form/Button",
       
"dijit/layout/ContentPane",
       
"dijit/layout/TabContainer",
       
"dojo/domReady!"
     
],
       
function (
         
Map, ArcGISDynamicMapServiceLayer, SimpleFillSymbol, SimpleLineSymbol,
         
IdentifyTask, IdentifyParameters, on, parser, Color, registry
       
) {

          parser
.parse();

         
var identifyTask, identifyParams;

            map
= new Map("mapDiv", {
              basemap
: "streets",
              center
: [-83.275, 42.573],
              zoom
: 18
           
});
            map
.on("load", initFunctionality);

           
var landBaseLayer = new ArcGISDynamicMapServiceLayer("https://sampleserver3.arcgisonline.com/ArcGIS/rest/services/BloomfieldHillsMichigan/Parcels/MapServer", {
              opacity
: 0.2
           
});
            map
.infoWindow.on("show", function () {
              registry
.byId("tabs").resize();
           
});
            map
.addLayer(landBaseLayer);

         
function initFunctionality () {
            map
.on("click", doIdentify);

            identifyTask
= new IdentifyTask("https://sampleserver3.arcgisonline.com/ArcGIS/rest/services/BloomfieldHillsMichigan/Parcels/MapServer");

            identifyParams
= new IdentifyParameters();
            identifyParams
.tolerance = 3;
            identifyParams
.returnGeometry = true;
            identifyParams
.layerIds = [0, 2];
            identifyParams
.layerOption = IdentifyParameters.LAYER_OPTION_ALL;
            identifyParams
.width = map.width;
            identifyParams
.height = map.height;

            map
.infoWindow.resize(415, 200);
            map
.infoWindow.setContent(registry.byId("tabs").domNode);
            map
.infoWindow.setTitle("Identify Results");

            symbol
= new SimpleFillSymbol(SimpleFillSymbol.STYLE_SOLID,
             
new SimpleLineSymbol(SimpleLineSymbol.STYLE_SOLID,
               
new Color([255, 0, 0]), 2),
             
new Color([255, 255, 0, 0.25]));
         
}

         
function doIdentify (event) {
            map
.graphics.clear();
            identifyParams
.geometry = event.mapPoint;
            identifyParams
.mapExtent = map.extent;
            identifyTask
.execute(identifyParams, function (idResults) {
              addToMap
(idResults, event);
           
});
         
}

         
function addToMap (idResults, event) {
            bldgResults
= { displayFieldName: null, features: [] };
            parcelResults
= { displayFieldName: null, features: [] };

           
for (var i = 0, il = idResults.length; i < il; i++) {
             
var idResult = idResults[i];
             
if (idResult.layerId === 0) {
               
if (!bldgResults.displayFieldName) { bldgResults.displayFieldName = idResult.displayFieldName; }
                bldgResults
.features.push(idResult.feature);
             
}
             
else if (idResult.layerId === 2) {
               
if (!parcelResults.displayFieldName) { parcelResults.displayFieldName = idResult.displayFieldName; }
                parcelResults
.features.push(idResult.feature);
             
}
           
}
            registry
.byId("bldgTab").set("content", buildingResultTabContent(bldgResults));
            registry
.byId("parcelTab").set("content", parcelResultTabContent(parcelResults));

            map
.infoWindow.show(event.screenPoint,
              map
.getInfoWindowAnchor(event.screenPoint));
         
}

         
function buildingResultTabContent (results) {
           
var template = "";
           
var features = results.features;

                template
+= "<i>Total features returned: " + features.length + "</i>";
                template
+= "<table border='1'>";
                template
+= "<tr><th>ID</th><th>Address</th></tr>";

               
var parcelId;
               
var fullSiteAddress;
               
for (var i = 0, il = features.length; i < il; i++) {
                  parcelId
= features[i].attributes['PARCELID'];
                  fullSiteAddress
= features[i].attributes['Full Site Address'];

                  template
+= "<tr>";
                  template
+= "<td>" + parcelId + " <a href='#' onclick='showFeature(bldgResults.features[" + i + "]); return false;'>(show)</a></td>";
                  template
+= "<td>" + fullSiteAddress + "</td>";
                  template
+= "</tr>";
               
}

                template
+= "</table>";

           
return template;
         
}

         
function parcelResultTabContent (results) {
           
var template = "";
           
var features = results.features;

            template
= "<i>Total features returned: " + features.length + "</i>";
            template
+= "<table border='1'>";
            template
+= "<tr><th>ID</th><th>Year Built</th><th>School District</th><th>Description</th></tr>";

           
var parcelIdNumber;
           
var residentialYearBuilt;
           
var schoolDistrictDescription;
           
var propertyDescription;
           
for (var i = 0, il = features.length; i < il; i++) {
              parcelIdNumber
= features[i].attributes['Parcel Identification Number'];
              residentialYearBuilt
= features[i].attributes['Residential Year Built'];
              schoolDistrictDescription
= features[i].attributes['School District Description'];
              propertyDescription
= features[i].attributes['Property Description'];

              template
+= "<tr>";
              template
+= "<td>" + parcelIdNumber + " <a href='#' onclick='showFeature(parcelResults.features[" + i + "]); return false;'>(show)</a></td>";
              template
+= "<td>" + residentialYearBuilt + "</td>";
              template
+= "<td>" + schoolDistrictDescription + "</td>";
              template
+= "<td>" + propertyDescription + "</td>";
              template
+= "</tr>";
           
}

            template
+= "</table>";

           
return template;
         
}
       
});

     
function showFeature (feature) {
        map
.graphics.clear();
        feature
.setSymbol(symbol);
        map
.graphics.add(feature);
     
}
   
</script>
 
</head>

 
<body class="claro">
    Click the map to identify building and tax information.
   
<div id="mapDiv" style="width:800px; height:600px; border:1px solid #000;"></div>
   
   
<div id="tabs" dojoType="dijit/layout/TabContainer" style="width:385px; height:150px;">
     
<div id="bldgTab" dojoType="dijit/layout/ContentPane" title="Buildings"></div>
     
<div id="parcelTab" dojoType="dijit/layout/ContentPane" title="Tax Parcels"></div>
   
</div>
 
</body>
</html>

运行结果:

https://developers.arcgis.com/javascript/3/samples/find_drilldown/

wKioL1fLokSABMwWAAChwktNytQ997.jpg



     本文转自stock0991 51CTO博客,原文链接:http://blog.51cto.com/qing0991/1846078,如需转载请自行联系原作者






相关文章
|
机器学习/深度学习 自然语言处理 达摩院
Rethinking Information Extraction :信息抽取的现状与未来
​ ##引言 从计算到感知再到认知是业内学者都认同的人工智能技术发展路径。机器具备认知智能,进而实现推理、规划乃至联想和创作,在一定程度上需要一个充满知识的大脑,而信息抽取是获取知识的重要途径之一。 在具体的业务场景如搜索推荐,结构化的领域知识有利于实现细粒度文本理解,有利于实现精准的复杂问答,有利于
5501 0
|
3月前
|
存储 JSON 自然语言处理
数据标注工具 doccano | 命名实体识别(Named Entity Recognition,简称NER)
数据标注工具 doccano | 命名实体识别(Named Entity Recognition,简称NER)
52 1
|
3月前
|
XML JSON 前端开发
网络要素服务(WFS)详解
网络要素服务(WFS)详解
79 0
|
存储 前端开发 JavaScript
状态管理(State Management):构建复杂应用的关键要素
在现代应用程序开发中,状态管理是一个至关重要的概念,它用于管理应用程序的数据和状态。无论您是开发Web应用、移动应用还是桌面应用,都需要有效的状态管理来确保应用程序的可维护性和可扩展性。在本博客中,我们将深入研究状态管理的定义、原则、工具和最佳实践,以及如何充分利用状态管理来构建复杂的应用程序。
414 0
|
机器学习/深度学习 资源调度 算法
自组织图(Self-Organizing Map,SOM)
自组织图(Self-Organizing Map,SOM),也称为Kohonen网络,是一种无监督学习算法,用于将高维输入数据映射到低维的拓扑结构中。它主要用于数据的聚类、可视化和特征提取。
231 1
|
前端开发 JavaScript 测试技术
类型体操之实现 type-challenges 中的 built-in 的所有类型
#built-in 是 type-challenges 库中的一个 tag,里面一共包括了 7 个类型,其中前两个就是之前介绍过的 类型体操之实现 Pick 和 Omit 中的 Pick 和 Omit
|
存储 监控 算法
多媒体信息处理学习笔记-Chap 4. Text Processing and Information Retrieval
多媒体信息处理学习笔记-Chap 4. Text Processing and Information Retrieval
87 0
多媒体信息处理学习笔记-Chap 4. Text Processing and Information Retrieval
|
存储 数据库 图形学
论文翻译—基于 IFC 的 BIM 模型建筑数据提取(Extracting Building Data from BIM with IFC)
论文翻译—基于 IFC 的 BIM 模型建筑数据提取(Extracting Building Data from BIM with IFC)
论文翻译—基于 IFC 的 BIM 模型建筑数据提取(Extracting Building Data from BIM with IFC)
|
自然语言处理 知识图谱
通用信息抽取 UIE(Universal Information Extraction)
通用信息抽取 UIE(Universal Information Extraction)
1043 0
通用信息抽取 UIE(Universal Information Extraction)
|
Web App开发 数据挖掘 Python
Mutual information and Normalized Mutual information 互信息和标准化互信息
实验室最近用到nmi( Normalized Mutual information )评价聚类效果,在网上找了一下这个算法的实现,发现满意的不多. 浙江大学蔡登教授有一个,http://www.zjucadcg.cn/dengcai/Data/code/MutualInfo.m ,他在数据挖掘届地位很高,他实现这个算法的那篇论文引用率高达三位数。
941 0