Odd Issue with GraphicsLayer::getGraphicIDs(float x, float y, int tolerance)

1345
0
05-23-2013 06:23 AM
AmbroseClarke
Esri Contributor
Implementing a typical identify - and doing the following- on a ArcGISFeatureLayer with 50 or so polygons - the GetGraphicsID() frequently brings back more polygons than expected - polygons that are not connected and not near the point selected:

Notes:
* The polygons brought back have different objectids
* There are other polygons between and nearer that are not brought back as the result (see the selected items in the screenshot)
* it doesn't happen with all polygons -
* once you find two polygons like this - it is reproducible - clicking on either one will select the other even if they are at opposite ends of the map.





Create Layer code and add polygons section of code

Options options = new Options();
options.mode = MODE.SNAPSHOT;
FeatureSet fs = new FeatureSet();
fLayer = new ArcGISFeatureLayer(CachedData.sRestLayerDef, fs, options);

Graphic[] graphics=(Graphic[])(msg.obj);
{//all graphics are created and added one at a time
   Polygon geom = Utils.GetPolygonFromJson(...);
   Graphic graphic  = new Graphic(geom, fill, attributes, null);;
   graphics.add(graphic);
}
fLayer.addGraphics(graphics);



@Override public boolean onSingleTap(final MotionEvent e)
{
...

int[] ids = featureLayer.getGraphicIDs((float)e.getX(), (float)e.getY(), 15);
featureLayer.setSelectedGraphics(ids, true);

}



[ATTACH=CONFIG]24614[/ATTACH]



Thanks...


Ambrose.
0 Kudos
0 Replies