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 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.
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.
28 29 30 |
# File 'lib/cocina_display/concerns/geospatial.rb', line 28 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.
37 38 39 |
# File 'lib/cocina_display/concerns/geospatial.rb', line 37 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.
19 20 21 |
# File 'lib/cocina_display/concerns/geospatial.rb', line 19 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.
44 45 46 |
# File 'lib/cocina_display/concerns/geospatial.rb', line 44 def geonames_ids place_subject_values.map { |s| s.geonames_id }.compact.uniq end |