flex中的identify纠正
来源:互联网 发布:深圳大数据协会 编辑:程序博客网 时间:2024/05/01 08:16
1、发现了map的extent和spatial的重要性,没有这个话,会出现好多问题。就比如说我做的identify,在没加这个之前只有点是可以做的,线和面就不可以做,加上之后就都可以了,当然了中间identifyparametr也要设置spatial的。
2、identifytask要显示多个属性可以用以下代码设置
var resultGraphic:Graphic=result.feature;
datas.push({"objectID":resultGraphic.attributes.OBJECTID,"BM":resultGraphic.attributes.BM});
正确代码如下:
<?xml version="1.0" encoding="utf-8"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" layout="absolute" xmlns:esri="http://www.esri.com/2008/ags">
<mx:ToggleButtonBar id="toolBar" y="10" x="33" itemClick="itemClickHandler(event)">
<mx:dataProvider>
<mx:Array>
<mx:Object icon="{point}"/>
<mx:Object icon="{polyline}"/>
<mx:Object icon="{polygon}"/>
</mx:Array>
</mx:dataProvider>
</mx:ToggleButtonBar>
<esri:Draw id="drawTool" map="{myMap}" graphicsLayer="{myGraphicLayer}" drawEnd="drawEndHandler(event)"/>
<esri:Map id="myMap" logoVisible="false" x="33" y="40" borderStyle="solid" borderThickness="3" width="1000">
<esri:extent>
<esri:Extent xmin="12662321.494300" ymin="4347904.020700" xmax="13341250.439500" ymax="5041318.416200">
<esri:SpatialReference wkid="102113"/>
</esri:Extent>
</esri:extent>
<esri:ArcGISDynamicMapServiceLayer id="myDynamicLayer" url="http://localhost/ArcGIS/rest/services/ggg/MapServer" complete="mapHandler(event)"/>
<esri:GraphicsLayer id="myGraphicLayer" symbolFunction="{symbolFunctionHandler}"/>
</esri:Map>
<mx:ComboBox id="layerList" x="500" y="10"/>
<esri:SimpleLineSymbol id="sls" style="solid" color="#000000" width="2" alpha="1"/>
<esri:SimpleMarkerSymbol id="sms" style="diamond" color="#000000" size="15"/>
<esri:SimpleFillSymbol id="sfs" />
<esri:IdentifyTask id="myIdentifyTask" url="http://localhost/ArcGIS/rest/services/ggg/MapServer" identifyComplete="identifyCompleteHandler(event)">
</esri:IdentifyTask>
<mx:DataGrid id="datalist" borderStyle="solid" borderThickness="3" borderColor="#1B67D9" y="40" left="1035"/>
<mx:Script>
<![CDATA[
import mx.messaging.management.Attribute;
import com.esri.ags.tasks.IdentifyResult;
import com.esri.ags.events.IdentifyEvent;
import com.esri.ags.tasks.IdentifyParameters;
import com.esri.ags.events.DrawEvent;
import mx.events.ItemClickEvent;
import com.esri.ags.geometry.Geometry;
import com.esri.ags.symbol.Symbol;
import com.esri.ags.Graphic;
import com.esri.ags.layers.LayerInfo;
import mx.controls.Alert;
[Bindable]
[Embed(source="assets/measure-point.png")]
public var point:Class;
[Bindable]
[Embed(source="assets/measure-line.png")]
public var polyline:Class;
[Bindable]
[Embed(source="assets/measure-poly.png")]
public var polygon:Class;
//获取图层的名字加到combox上,在图层加载完成后执行
private function mapHandler(event:Event):void
{
var layersinfo:Array;
layersinfo=myDynamicLayer.layerInfos;
var myLayers:Array=new Array();
//遍历图层数组,将图层的名字和index加载
var i:int;
for( i=0;i<layersinfo.length;i++)
{
myLayers.push({label:layersinfo[i].name,data:i});//??????
}
//给combox绑定数据源
layerList.dataProvider=myLayers;
}
//这个功能是当有元素添加到GraphicsLayer时进行元素显示样式的设置,
private function symbolFunctionHandler(myGraphic:Graphic):Symbol
{
var result:Symbol;
//根据元素的类型进行显示图像的设置
switch(myGraphic.geometry.type)
{
case Geometry.MAPPOINT:
{
result=sms;
break;
}
case Geometry.POLYLINE:
{
result=sls;
break;
}
case Geometry.POLYGON:
{
result=sfs;
break;
}
}
return result;
}
//toolBar
private function itemClickHandler(event:ItemClickEvent):void
{
switch(event.index)
{
case 0:
{
drawTool.activate(Draw.MAPPOINT);
break;
}
case 1:
{
drawTool.activate(Draw.POLYLINE);
break;
}
case 2:
{
drawTool.activate(Draw.POLYGON);
break;
}
}
}
//drawEnd事件
private function drawEndHandler(event:DrawEvent):void
{
//获取查询结果geometry
var myGraphic:Graphic=event.graphic;
var myGeometry:Geometry=event.graphic.geometry;
var identifyPara:IdentifyParameters=new IdentifyParameters();
//查询需要返回的Geometry
identifyPara.returnGeometry=true;
identifyPara.tolerance=1;
identifyPara.width=myMap.width;
identifyPara.height=myMap.height;
//设置查询的geometry
identifyPara.geometry=myGeometry;
//一定要设置的spatialReference
identifyPara.spatialReference=myMap.spatialReference;
var myLayer:Array=new Array();
myLayer.push(layerList.value);
identifyPara.layerIds=myLayer;
// Alert.show(identifyPara.layerIds.toString());
//查询可见图层
identifyPara.layerOption=IdentifyParameters.LAYER_OPTION_VISIBLE;
identifyPara.mapExtent=myMap.extent;
//进行查询
myIdentifyTask.execute(identifyPara);
// Alert.show("123");
}
//查询完成后执行的事件
private function identifyCompleteHandler(event:IdentifyEvent):void
{
// Alert.show("456");
var datas:Array=new Array();
//遍历查询结果把查询到的feature添加到GraphicsLayer进行高亮显示
//同时把查询到的元素的名称添加到datas对象数组用来DataGrid显示用
var result:IdentifyResult;
for each(result in event.identifyResults)
{
myGraphicLayer.add(result.feature);
// datas.push({"value":result.value});
//实现多个字段的添加
var resultGraphic:Graphic=result.feature;
datas.push({"objectID":resultGraphic.attributes.OBJECTID,"BM":resultGraphic.attributes.BM});
}
//设置datalist的数据源
datalist.dataProvider=datas;
}
]]>
</mx:Script>
</mx:Application>
- flex中的identify纠正
- flex中的identify
- HMPP_Tutorial_Labs_*中的错误纠正
- Identify
- IDENTIFY
- Identify
- arcgis api for flex 开发入门(六)identify
- flex中的flex-direction
- flex 中的flex-basis
- flex学习----flex中的MVC
- 纠正:HashPasswordForStoringInConfigFile中的Md5算法并非常用的Md5算法
- 纠正:HashPasswordForStoringInConfigFile中的Md5算法并非常用的Md5算法
- 纠正:HashPasswordForStoringInConfigFile中的Md5算法并非常用的Md5算法
- identify字段
- Identify Anagram
- ArcGIS.Server.9.3和ArcGIS API for Flex实现Identify的功能图查属性(六)
- Flex中的set啊Flex中的set
- Flex中的set啊Flex中的set
- hdoj1283
- MATLAB 简单的计算白色轮廓中像素点的个数
- 2010新编中国顶级黑客圈内人物资料和QQ,微博以及博客详解
- PHP连接mysql例子
- 缺失数据检查
- flex中的identify纠正
- volatile关键字
- ORACLE中方案的概念以及方案与数据库的关系
- SQL 标量函数-----> 取子串函数 、子串长度
- opendedup(sdfs)源码分析5之FakeFilesystem篇
- 郭天祥,我的大学六年
- 【计算几何】zjoi2008 risk
- 手机
- 被触动心灵的感觉.....