import mx.events.ListEvent;
private function findGraphicByAttribute(attributes:Object):Graphic { for each( var graphic:Graphic in mqGraphicsLayer.graphicProvider) { if ( graphic.attributes === attributes) { return graphic; } } return null; } private function onItemClick(event:ListEvent):void { var gra:Graphic = findGraphicByAttribute(event.itemRenderer.data); var pt:MapPoint = null; var sIcon:String=""; if (gra.geometry is MapPoint){ pt = gra.geometry as MapPoint; if (map.scale > 5000) map.scale = 5000; map.centerAt(pt); } else if (gra.geometry is Polygon) { pt = new MapPoint(); pt.x = (gra.geometry.extent.xmax + gra.geometry.extent.xmin) / 2 pt.y = (gra.geometry.extent.ymax + gra.geometry.extent.ymin) / 2 sIcon = ICON_URL + "i_info.png"; map.extent = gra.geometry.extent; } else if (gra.geometry is Polyline){ var polyline:Polyline = gra.geometry as Polyline; pt = polyline.extent.center; sIcon = ICON_URL + "i_info.png"; map.extent = gra.geometry.extent; } if (pt != null){ var sContent:String = ""; var obj:Object = gra.attributes var fld:String; var value:String; for (fld in obj) { value = obj[fld].toString(); sContent = (sContent.length == 0)? fld + " = " + value + "<br/>" : sContent + fld + " = " + value + "<br/>"; } var infoData:Object = { icon : sIcon, content: sContent, point: pt, link: "" }; this.showInfoWindow(infoData); } }
<mx:DataGrid id="QBData" width="100%" height="100%" itemClick="onItemClick(event)" />
if (gra.geometry is MapPoint){ pt = gra.geometry as MapPoint; if (map.scale > 5000) map.scale = 5000; map.centerAt(pt);
if (gra.geometry is MapPoint){ pt = gra.geometry as MapPoint; if (map.scale > 50000) map.scale = 50000; map.centerAt(pt);
for each (var gra:Graphic in fset.features) { multiPoint.addPoint(MapPoint(gra.geometry)); } if (multiPoint.points.length > 1){ map.extent = multiPoint.extent.expand(1.5); trace("Map SR: " + map.spatialReference.toString()); trace("Gra SR: " + gra.spatialReference.toString()); } else{ trace("Map SR: " + map.spatialReference.toString()); trace("Gra SR: " + gra.spatialReference.toString()); if (map.scale > zoomScale) map.scale = zoomScale; map.centerAt(multiPoint.points[0]); }
dataProvider="{findTask.executeLastResult}"
Signed in members can post, follow updates, and more. New here? Register a free account.
Find useful guides, FAQs, and documents to help you navigate and make the most of Esri Community.