Revision 3680

View differences:

org.gvsig.vectorediting/trunk/org.gvsig.vectorediting/org.gvsig.vectorediting.lib/org.gvsig.vectorediting.lib.impl/src/main/java/org/gvsig/vectorediting/lib/impl/DefaultEditingProviderServices.java
698 698
            }
699 699
                
700 700
            List<Geometry> geometries = sc.query(buffer.getEnvelope());
701
            double minDistance = Double.POSITIVE_INFINITY;
702
            for (Geometry geom : geometries) {
703
                boolean found = false;
704
                for (Feature excludeFeature : excludeFeatures) {
705
                    if (excludeFeature.getStore() == store) {
706
                        if(excludeFeature.getDefaultGeometry().equals(geom)){
707
                            found = true;
701
            if( geometries!=null ) {
702
                double minDistance = Double.POSITIVE_INFINITY;
703
                for (Geometry geom : geometries) {
704
                    boolean found = false;
705
                    if( excludeFeatures!=null ) {
706
                        for (Feature excludeFeature : excludeFeatures) {
707
                            if (excludeFeature.getStore() == store) {
708
                                if(excludeFeature.getDefaultGeometry().equals(geom)){
709
                                    found = true;
710
                                }
711
                            }
708 712
                        }
709 713
                    }
710
                }
711
                if(found){
712
                    continue;
713
                }
714
                if(geom.intersects(buffer)){
715
                    double distance = geom.distance(point);
716
                    if(distance<minDistance){
717
                        minDistance = distance;
718
                        geometry = geom;
714
                    if(found){
715
                        continue;
719 716
                    }
717
                    if(geom.intersects(buffer)){
718
                        double distance = geom.distance(point);
719
                        if(distance<minDistance){
720
                            minDistance = distance;
721
                            geometry = geom;
722
                        }
723
                    }
720 724
                }
721 725
            }
722

  
723 726
        } catch (Exception ex) {
724 727
            LOGGER.warn("Can't get geometry on point (" + point.getX() + "," + point.getY(), ex);
725 728
        }

Also available in: Unified diff