Revision 3680
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