Module: CocinaDisplay::Concerns::Geospatial
- Included in:
- CocinaDisplay::CocinaRecord, RelatedResource
- Defined in:
- lib/cocina_display/concerns/geospatial.rb
Overview
Methods for extracting geospatial metadata, such as coordinates.
Instance Method Summary collapse
-
#coordinates ⇒ Array<String>
All coordinate data as DMS format strings.
-
#coordinates_as_envelope ⇒ Array<String>
All valid coordinate data formatted for indexing into a Solr BBoxField.
-
#coordinates_as_point ⇒ Array<String>
All valid coordinate data formatted for indexing into a Solr RPT field.
-
#coordinates_as_wkt ⇒ Array<String>
All valid coordinate data formatted for indexing into a Solr RPT field.
-
#geonames_ids ⇒ Array<String>
Identifiers assigned by geonames.org for places related to the object.
Instance Method Details
#coordinates ⇒ Array<String>
All coordinate data as DMS format strings.
10 11 12 |
# File 'lib/cocina_display/concerns/geospatial.rb', line 10 def coordinates coordinate_subject_values.map(&:to_s).compact.uniq end |
#coordinates_as_envelope ⇒ Array<String>
Points are not included since they can’t be represented as a box.
All valid coordinate data formatted for indexing into a Solr BBoxField.
29 30 31 |
# File 'lib/cocina_display/concerns/geospatial.rb', line 29 def coordinates_as_envelope coordinate_objects.map(&:as_envelope).compact.uniq end |
#coordinates_as_point ⇒ Array<String>
Bounding boxes are automatically converted to their center point.
All valid coordinate data formatted for indexing into a Solr RPT field.
38 39 40 |
# File 'lib/cocina_display/concerns/geospatial.rb', line 38 def coordinates_as_point coordinate_objects.map(&:as_point).uniq end |
#coordinates_as_wkt ⇒ Array<String>
This type of field accommodates both points and bounding boxes.
In WKT, points have longitude first, unlike #coordinates_as_point.
All valid coordinate data formatted for indexing into a Solr RPT field.
20 21 22 |
# File 'lib/cocina_display/concerns/geospatial.rb', line 20 def coordinates_as_wkt coordinate_objects.map(&:as_wkt).uniq end |
#geonames_ids ⇒ Array<String>
Identifiers assigned by geonames.org for places related to the object.
45 46 47 |
# File 'lib/cocina_display/concerns/geospatial.rb', line 45 def geonames_ids place_subject_values.map { |s| s.geonames_id }.compact.uniq end |