|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||
@UML(identifier="GM_PointArray",
specification=ISO_19107)
public interface PointArrayA sequence of points.
The PointArray interface outlines a means of efficiently storing large numbers of usually
homogeneous positions; i.e. all having the same
coordinate reference system. While a point array
conceptually contains positions, it provides convenience methods for
fetching directly the direct positions instead.
A simple implementation of PointArray will generally be no more efficient than a simple
array of Positions. More efficient implementations may store coordinates in a more
compact form (e.g. in a single float[] array) and creates Position objects on the
fly when needed.
If a particular PointArray implementation supports efficiently random access through any
get or set method, it shall announce this capability by implementing the
RandomAccess interface. Otherwise, users should read the positions through the
iterator() instead.
Position,
PointGrid| Method Summary | |
|---|---|
CoordinateReferenceSystem |
getCoordinateReferenceSystem()
Returns the Coordinate Reference System in which the coordinates are given. |
int |
getDimension()
Returns the dimensionality of the coordinates in this array. |
DirectPosition |
getDirectPosition(int index,
DirectPosition dest)
Gets a copy of the direct position at the particular location in this PointArray. |
int |
length()
Deprecated. Please use List.size() |
List<Position> |
positions()
Deprecated. use this |
void |
setDirectPosition(int index,
DirectPosition position)
Sets the point at the given index. |
| Methods inherited from interface List |
|---|
add, add, addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, retainAll, set, size, subList, toArray, toArray |
| Method Detail |
|---|
@Extension int length()
List.size()
positions().size().
List.size(),
PointGrid.width()@Extension int getDimension()
This method is the same as:
return getCoordinateReferenceSystem().getCoordinateSystem().getDimension();
DirectPosition.getDimension()@Extension CoordinateReferenceSystem getCoordinateReferenceSystem()
null if this particular PointArray is included in a larger object with such a
reference to a coordinate reference system}. In this case, the cordinate reference system is
implicitly assumed to take on the value of the containing object's coordinate reference
system.
null.DirectPosition.getCoordinateReferenceSystem()
@Extension
DirectPosition getDirectPosition(int index,
DirectPosition dest)
throws IndexOutOfBoundsException
PointArray. If the dest argument is non-null, that object will be
populated with the value from the array. In all cases, the position in insulated from changes
in the PointArray, and vice-versa. Consequently, the same DirectPosition
object can be reused for fetching many points from this array. Example:
DirectPosition position = null;
final int length = array.length();
for (int i=0; i<length; i++) {
position = array.getDirectPosition(i, position);
// Do some processing...
}
index - The location in the array, from 0 inclusive to the array
length exclusive.dest - An optionnaly pre-allocated direct position.
dest argument, or a new object if dest was null.
IndexOutOfBoundsException - if the index is out of bounds.
@Extension
void setDirectPosition(int index,
DirectPosition position)
throws IndexOutOfBoundsException,
UnsupportedOperationException
position after this method call will not be reflected into this point array.
Consequently, the same DirectPosition object can be reused for setting many points in
this array.
index - The location in the array, from 0 inclusive to the array
length exclusive.position - The point to set at the given location in this array.
IndexOutOfBoundsException - if the index is out of bounds.
UnsupportedOperationException - if this array is immutable.List.set(int, E)
@UML(identifier="column",
obligation=MANDATORY,
specification=ISO_19107)
List<Position> positions()
PointArray, so changes to the point array are reflected in
the list, and vice-versa.
Note that random access may be costly in some implementations. If the returned list doesn't
implement the RandomAccess interface, then consider avoiding the
List.get(int) method. Favor the list iterator instead.
|
||||||||||
| PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
| SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD | |||||||||