Module: CocinaDisplay::Concerns::Geospatial
- Included in:
- CocinaDisplay::CocinaRecord
- 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 LatLon 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.
12 13 14 |
# File 'lib/cocina_display/concerns/geospatial.rb', line 12 def coordinates coordinate_subjects.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.
30 31 32 |
# File 'lib/cocina_display/concerns/geospatial.rb', line 30 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 LatLon field.
39 40 41 |
# File 'lib/cocina_display/concerns/geospatial.rb', line 39 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.
All valid coordinate data formatted for indexing into a Solr RPT field.
21 22 23 |
# File 'lib/cocina_display/concerns/geospatial.rb', line 21 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.
46 47 48 |
# File 'lib/cocina_display/concerns/geospatial.rb', line 46 def geonames_ids place_subject_values.map { |s| s.geonames_id }.compact.uniq end |