@UML(identifier="GM_PointArray", specification=ISO_19107) public interface PointArray extends List<Position>
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 Position
s. 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.
Modifier and Type | Method and Description |
---|---|
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 . |
void |
setDirectPosition(int index,
DirectPosition position)
Sets the point at the given index.
|
add, add, addAll, addAll, clear, contains, containsAll, equals, get, hashCode, indexOf, isEmpty, iterator, lastIndexOf, listIterator, listIterator, remove, remove, removeAll, replaceAll, retainAll, set, size, sort, spliterator, subList, toArray, toArray
parallelStream, removeIf, stream
@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)
Copyright © 1996–2019 Geotools. All rights reserved.