Package com.geodesk.feature
Interface Feature
public interface Feature
A geographic feature.
-
Method Summary
Modifier and TypeMethodDescriptiondefault doublearea()Measures the area of a feature.booleanChecks whether this feature is a member of the given Relation, or a node in the given Way.booleanChecks whether this Feature is a member of a Relation.booleanbooleanValue(String key) bounds()Retrieves the bounding box of the feature.booleanChecks whether this feature has a tag with the given key.booleanChecks whether this feature has a tag with the given key and value.longid()Returns the OSM ID of the feature.intReturns the value of a tag as an integer.booleanisArea()Checks whether this Feature represents an area.default doublelat()Returns the latitude of this feature.default doublelength()Measures the length of a feature.default doublelon()Returns the longitude of this feature.Returns all relations to which this Feature belongs.role()If this Feature was returned by a call toRelation.members()(or its variants) of a Relation, returns this Feature's role in that Relation.stringValue(String key) Returns the value of a tag as a String.Returns the string value of the given key.tags()Returns the tags of this feature.Creates a JTSGeometryobject for this feature.type()Returns the feature's type.intx()Returns the X coordinate of this feature.inty()Returns the Y coordinate of this feature.
-
Method Details
-
id
long id()Returns the OSM ID of the feature. For nodes that have no tags and are not member of any relation, the ID may be 0.- Returns:
- the feature's OSM ID
-
type
FeatureType type()Returns the feature's type.- Returns:
- `NODE`, `WAY` or `RELATION`
-
x
int x()Returns the X coordinate of this feature. For a `Way` or `Relation`, this is the horizontal midpoint of its bounding box.- Returns:
- X coordinate in Mercator projection
-
y
int y()Returns the Y coordinate of this feature. For a `Way` or `Relation`, this is the vertical midpoint of its bounding box.- Returns:
- Y coordinate in Mercator projection
-
lon
default double lon()Returns the longitude of this feature. For aWayorRelation, this is the horizontal midpoint of its bounding box.- Returns:
- longitude as degrees
-
lat
default double lat()Returns the latitude of this feature. For aWayorRelation, this is the vertical midpoint of its bounding box.- Returns:
- longitude as degrees
-
bounds
Box bounds()Retrieves the bounding box of the feature.- Returns:
- a copy of the Feature's BoundingBox
-
tags
Tags tags()Returns the tags of this feature.- Returns:
- the feature's tags
-
tag
Returns the string value of the given key.- Parameters:
key- the tag's key- Returns:
- the string value of the tag, or an empty string if this feature does not have the requested tag
-
hasTag
Checks whether this feature has a tag with the given key.- Parameters:
key- the key (e.g.highway)- Returns:
- true if feature is tagged with this key, otherwise false
-
hasTag
Checks whether this feature has a tag with the given key and value.- Parameters:
key- the key (e.g.highway)value- the value (e.g.residential)- Returns:
- true if the feature is tagged with this key/value, otherwise false
-
belongsTo
Checks whether this feature is a member of the given Relation, or a node in the given Way.- Parameters:
parent- `Way` or `Relation`- Returns:
- `true` if this Feature belongs to the given `Way` or `Relation` (always `false` if `parent` is a `Node`)
-
role
String role()If this Feature was returned by a call toRelation.members()(or its variants) of a Relation, returns this Feature's role in that Relation.- Returns:
- the feature's role, or an empty String (if the feature is a member without an assigned role), or `null` if it was obtained via another kind of query
-
stringValue
Returns the value of a tag as a String.- Parameters:
key- the key of the tag- Returns:
- the tag's value, or an empty String if the tag does not exist
-
intValue
Returns the value of a tag as an integer.- Parameters:
key- the key of the tag- Returns:
- the tag's value, or `0` if the tag does not exist or has a value that cannot be converted to an integer
-
booleanValue
-
belongsToRelation
boolean belongsToRelation()Checks whether this Feature is a member of a Relation.- Returns:
- `true` if this Feature belongs to at least one Relation
-
parentRelations
Returns all relations to which this Feature belongs.- Returns:
- a collection of relations (may be empty)
-
isArea
boolean isArea()Checks whether this Feature represents an area. Areas are closed ways that have certain tags (e.g.landuse), or are explicitly tagged witharea=yes; or relations that represent (multi-) polygons.- Returns:
- true if this feature is an area, otherwise false
-
length
default double length()Measures the length of a feature.- Returns:
- length (in meters), or 0 if the feature is not lineal. TODO: should return circumference for areas
-
area
default double area()Measures the area of a feature.- Returns:
- area (in square meters), or 0 if the feature is not polygonal
-
toGeometry
Geometry toGeometry()Creates a JTSGeometryobject for this feature. The returned following types of geometries are created: - For a `Node`:Point- For a non-closed `Way`:LineString- For a closed `Way`:Polygonif it represents an area, otherwiseLinearRing- For a `Relation` that is an area:Polygon- For a non-area `Relation`:GeometryCollection- Returns:
- a newly created Geometry.
-