Goobi viewer (English)
Documentation homeGoobi viewer Digests
  • Goobi viewer manual
  • Documentation overview
  • What is the Goobi viewer?
  • Configuration
    • 1. Goobi viewer Core
      • 1.1 Local settings
      • 1.2 Translations
      • 1.3 Folder configuration
      • 1.4 URL configuration
      • 1.5 User accounts
        • 1.5.1 Authentication Provider
        • 1.5.2 Sending e-mails
        • 1.5.3 Further settings
      • 1.6 Performance
      • 1.7 Access conditions and images
      • 1.8 Captcha
      • 1.9 PDF download
        • 1.9.1 Variants
        • 1.9.2 Download Links
        • 1.9.3 Individual PDF title page
      • 1.10 ePub download
      • 1.11 Image options
        • 1.11.1 Extended scrolling in the image view
        • 1.11.2 Navigation between structure types
        • 1.11.3 Image view configuration
        • 1.11.4 Maintaining zoom and rotation while browsing in the image view
        • 1.11.5 External images
        • 1.11.6 Restriction of image scaling
        • 1.11.7 Thumbnail settings
        • 1.11.8 Image Footer
      • 1.12 Individual page types
      • 1.13 Opening certain document types in alternative page views
      • 1.14 Full text hints
      • 1.15. Language settings
      • 1.16 Theme
        • 1.16.1 External themes
      • 1.17 Search
        • 1.17.1 Sorting
        • 1.17.2 Faceting
        • 1.17.3 Advanced search
        • 1.17.4 Timeline
        • 1.17.5 Calendar
        • 1.17.6 Save search
        • 1.17.7 Expand query for search sub-results
        • 1.17.8 Aggregated search hit display
        • 1.17.9 Versioning of records
        • 1.17.10 Exporting search results
        • 1.17.11 Search hit metadata
      • 1.18 Digital collections
        • 1.18.1 Collection hierarchy
        • 1.18.2 Sorting of records
        • 1.18.3 Sorting of collections
        • 1.18.4 Blacklist
        • 1.18.5 Collection size
        • 1.18.6 Further settings
        • 1.18.7 Structure element whitelist
      • 1.19 Metadata
        • 1.19.1 Main metadata
        • 1.19.2 Sidebar metadata
        • 1.19.3 Search hit metadata
        • 1.19.4 Archive metadata
        • 1.19.5 Image metadata
        • 1.19.6 Display of authority data
        • 1.19.7 Calendar structure elements
        • 1.19.8 Browsing
        • 1.19.9 Multilingual metadata
        • 1.19.10 Licenses
      • 1.20 Tables of contents
        • 1.20.1 Main table of contents
        • 1.20.2 Sidebar table of contents
        • 1.20.3 Download tables of content as PDF file
      • 1.21 Tag clouds
      • 1.22 Resolver
      • 1.23 Sidebar
      • 1.24 Navigation and display
      • 1.25 RSS feed
      • 1.26 Reading lists
      • 1.27 User comments
      • 1.28 CMS
      • 1.29 Transkribus
      • 1.30 Original content
      • 1.31 Piwik/Matomo
      • 1.32 Sitelinks
      • 1.33 API
        • 1.33.1 JSON
        • 1.33.2 IIIF
        • 1.33.3 Authentication
        • 1.33.4 CORS
      • 1.34 OpenSearch
      • 1.35 Embedding
      • 1.36 Maps
      • 1.37 Translations
      • 1.38 Archive
      • 1.39 Campaigns
      • 1.40 Add content
      • 1.41 Usage figures
      • 1.42 Config Editor
      • 1.43 Proxy
      • 1.44 ActiveMQ
      • 1.45 Developer
      • 1.46 External Ressources
    • 2. Goobi viewer Indexer
      • 2.1 Main configuration
      • 2.2 Directories
      • 2.3 Proxy
      • 2.4 Performance
      • 2.5 Structure types
      • 2.6 Metadata
      • 2.7 Starting and Exiting
      • 2.8 Indexing records
      • 2.9 Updating individual page documents
      • 2.10 Deleting records
      • 2.11 Solr scheme
      • 2.12 Further settings
    • 3. Goobi viewer Connector
      • 3.1 OAI interface
        • 3.1.1 Main Configuration
        • 3.1.2 Dublin Core
        • 3.1.3 Europeana
        • 3.1.4 METS
        • 3.1.5 LIDO
        • 3.1.6 MARCXML
        • 3.1.7 Xepicur
        • 3.1.8 Goobi viewer overview pages
        • 3.1.9 Goobi viewer crowdsourcing
        • 3.1.10 TEI
        • 3.1.11 CMDI
        • 3.1.12 Sets
      • 3.2 SRU interface
  • User interface
    • 1. Frontend
    • 2. Backend
      • 2.1 Dashboard
      • 2.2 Administration
        • 2.2.1 User
        • 2.2.2 Groups
        • 2.2.3 IP-Ranges
        • 2.2.4 Access licenses
        • 2.2.5 Rights
        • 2.2.6 Comments
        • 2.2.7 Terms of use
        • 2.2.8 New record
      • 2.3 Crowdsourcing
        • 2.3.1 Campaigns
        • 2.3.2 Annotations
      • 2.4 CMS
        • 2.4.1 Pages
        • 2.4.2 Categories
        • 2.4.3 Static pages
        • 2.4.4 Media
        • 5.4.5 Menus
        • 5.4.6 Collections
        • 5.4.7 Maps
  • Misc
    • 1. Use cases
      • 1.1 Series and convolutes
      • 1.2 Access restrictions
      • 1.3 Subthemes
      • 1.4 Authority data
      • 1.5 Multilingualism
      • 1.6 Maps
      • 1.7 Sub collections
      • 1.8 Multiple Goobi viewer
      • 1.9 Crowdsourcing module
      • 1.10 Archival documents
      • 1.11 Solr Queries
      • 1.12 Linking from METS file groups
      • 1.13 Add content
      • 1.14 Shibboleth
      • 1.15 Access restricted metadata
    • 2. FAQ
    • 3. Glossary
  • Devs & Ops
    • 1. Core Changelog
    • 2. Theme Changelog
    • 3. Installation guide
      • 3.1 Classical
      • 3.2 Docker
    • 4. Development environment
    • 5. API
    • 6. Explained!
Powered by GitBook
On this page
  • General
  • Acquisition and indexing
  • GND
  • GeoNames
  • Latitude and longitude
  • Bounding Box
  • Search via URL
  • Configuration

Was this helpful?

  1. Misc
  2. 1. Use cases

1.6 Maps

General

The Goobi viewer supports the display of coordinates on a map. There are different possibilities for the acquisition, the indexing and the display. These are listed on this page.

Acquisition and indexing

GND

The simplest option is when, for example, a publication location is linked to a GND record immediately upon import from the catalog and this record contains coordinates.

Goobi workflow

<!-- Definition -->
<MetadataType normdata="true">
    <Name>PlaceOfPublication</Name>
    <language name="de">Erscheinungsort</language>
    <language name="en">place of publication</language>
</MetadataType>

<!-- ... -->

<!-- MODS Export -->
<Metadata>
    <InternalName>PlaceOfPublication</InternalName>
    <WriteXPath>./mods:mods/mods:originInfo[1]/#mods:place/mods:placeTerm[@type='text']</WriteXPath>
</Metadata>

Goobi viewer Indexer

<MD_PLACEPUBLISH>
    <list>
        <item>
            <xpath>mets:xmlData/mods:mods/mods:originInfo[not(mods:edition[text() = '[Electronic ed.]'])]/mods:place/mods:placeTerm[@type="text"]</xpath>
            <getchilds>all</getchilds>
            <addToDefault>true</addToDefault>
            <groupEntity type="LOCATION" addCoordsToDocstruct="true">
                <field name="MD_VALUE">text()</field>>
                <field name="NORM_URI">@valueURI</field>
            </groupEntity>
        </item>
    </list>
</MD_PLACEPUBLISH>

Example

In an exported METS/MODS file, the markup of a publication location could look like this and the display in the Goobi viewer could then look like the following screenshot:

<mods:originInfo>
    <mods:place>
        <mods:placeTerm authority="gnd" authorityURI="http://d-nb.info/gnd/" type="text" valueURI="http://d-nb.info/gnd/4057392-8">Alten Stettin</mods:placeTerm>
    </mods:place>
</mods:originInfo>

GeoNames

Metadata can also be linked to the GeoNames authority database as shown in the following configuration.

Goobi workflow

<!-- Definition -->
<MetadataType normdata="true">
    <Name>SubjectGeographic</Name>
    <language name="de">Geographisches Schlagwort</language>
    <language name="en">GeographicPerson</language>
</MetadataType>

<!-- ... -->

<!-- MODS Export -->
<Metadata>
    <InternalName>SubjectGeographic</InternalName>
    <WriteXPath>./mods:mods/mods:subject/#mods:geographic[@type="text"]</WriteXPath>
</Metadata>

Goobi viewer Indexer

<MD_SUBJECTGEOGRAPHIC>
    <list>
        <item>
            <xpath>mets:xmlData/mods:mods/mods:subject/mods:geographic</xpath>
            <getchilds>all</getchilds>
            <addToDefault>true</addToDefault>
            <groupEntity type="OTHER" addCoordsToDocstruct="true">
                <field name="MD_VALUE">text()</field>
                <field name="MD_DISPLAYFORM">text()</field>
                <field name="NORM_URI_VIAF">@valueURI</field>
            </groupEntity>
        </item>
    </list>
</MD_SUBJECTGEOGRAPHIC>

Beispiel

In an exported METS/MODS file, the labeling of the geographic keyword could look like this and the display in the Goobi viewer could then look like the following screenshot:

<mods:geographic type="text" valueURI="http://www.geonames.org/2766155">Schärding</mods:geographic>

Latitude and longitude

Recorded separately

If coordinates are available as latitude and longitude, they can be recorded separately.

Goobi workflow

<!-- Definition -->
<MetadataType>
    <Name>locationNameDE</Name>
    <language name="de">Name DE</language>
    <language name="en">locationNameDE</language>
</MetadataType>
<MetadataType>
    <Name>locationLatitude</Name>
    <language name="de">Latitude</language>
    <language name="en">locationLatitude</language>
</MetadataType>
<MetadataType>
    <Name>locationLongitude</Name>
    <language name="de">Longitude</language>
    <language name="en">locationLongitude</language>
</MetadataType>

<Group>
    <Name>LocationGroup</Name>
    <language name="de">Ort</language>
    <language name="en">Location</language>
    <metadata>locationNameDE</metadata>
    <metadata>locationLatitude</metadata>
    <metadata>locationLongitude</metadata>
</Group>
        
<!-- ... -->

<!-- MODS Export -->
<Group>
    <InternalName>LocationGroup</InternalName>
    <WriteXPath>./mods:mods/mods:extension/#intranda:location</WriteXPath>
    <Metadata>
        <InternalName>locationNameDE</InternalName>
        <WriteXPath>./intranda:name[@language='ger']</WriteXPath>
    </Metadata>
    <Metadata>
        <InternalName>locationLatitude</InternalName>
        <WriteXPath>./intranda:latitude</WriteXPath>
    </Metadata>
    <Metadata>
        <InternalName>locationLongitude</InternalName>
        <WriteXPath>./intranda:longitude</WriteXPath>
    </Metadata>
</Group>

Goobi viewer Indexer

<MD_COORDINATES>
    <list>
        <item>
            <xpath>mets:xmlData/mods:mods/mods:extension/intranda:location</xpath>
            <addToDefault>true</addToDefault>
            <onefield>false</onefield>
            <geoJSONSource separator=" / " addSearchField="true">mods:coordinates/point</geoJSONSource>
            <groupEntity type="LOCATION">
                <field name="MD_VALUE">concat(intranda:longitude/text(), " / ", intranda:latitude/text())</field>
            </groupEntity>
        </item>
    </list>
</MD_COORDINATES>

Example

Latitude and longitude information are not provided in MODS, so they are exported to a separate namespace. The display is then done as point coordinates as already shown above in screenshots

<mods:extension>
    <intranda:location>
        <intranda:name language="ger">Schönwalde</intranda:name>
        <intranda:latitude>53.586123100000002</intranda:latitude>
        <intranda:longitude>15.733848099999999</intranda:longitude>
    </intranda:location>
</mods:extension>

Recorded together

Latitude and longitude can also be acquired together.

Goobi workflow

<!-- Definition -->
<MetadataType>
    <Name>Coordinates</Name>
    <language name="de">Koordinaten (Lat+Lon)</language>
    <language name="en">Coordinates (Lat+Lon)</language>
</MetadataType>

<!-- ... -->

<!-- MODS Export -->
<Metadata>
    <InternalName>Coordinates</InternalName>
    <WriteXPath>./mods:mods/mods:extension/intranda:cartographics/#intranda:coordinates</WriteXPath>
</Metadata>

Goobi viewer Indexer

For jointly captured metadata, the values are split at a configured separator during indexing.

<MD_COORDINATES>
    <list>
        <item>
            <xpath>mets:xmlData/mods:mods/mods:extension/intranda:location/intranda:coordinates</xpath>
            <addToDefault>true</addToDefault>
            <onefield>false</onefield>
            <geoJSONSource separator=" / " addSearchField="true">intranda:coordinates/point</geoJSONSource>
        </item>
    </list>
</MD_COORDINATES>

Example

The display then takes place as point coordinates as already shown above in screenshots.

<mods:cartographics>
    <mods:coordinates>54.04592419999999 / 13.247582599999987</mods:coordinates>
</mods:cartographics>

Bounding Box

Maps can be captured and displayed not only as points, but also as bounding boxes. The coordinates can be determined very easily with a bounding box tool from Klokantech:

Below the map there is a copy and paste field for the MARC field 034. The content of the individual subfields is explained using the following example:

# example field content for 034
$$dE0081339$$eE0083333$$fN0533708$$gN0532442

# Subfeldzuordnung
$d - westernmost longitude: E0081339
$e - easternmost longitude: E0083333
$f - northernmost latitude: N0533708
$g - southernmost latitude: N0532442

Goobi workflow

<!-- Definition -->
<MetadataType>
    <Name>CoordinatesWesternmostLongitude</Name>
    <language name="de">Koordinaten: westlichster Längengrad</language>
    <language name="en">Coordinates: westernmost longitude</language>
</MetadataType>
<MetadataType>
    <Name>CoordinatesEasternmostLongitude</Name>
    <language name="de">Koordinaten: östlichster Längengrad</language>
    <language name="en">Coordinates: easternmost longitude</language>
</MetadataType>
<MetadataType>
    <Name>CoordinatesNorthernmostLatitude</Name>
    <language name="de">Koordinaten: nördlichster Breitengrad</language>
    <language name="en">Coordinates: northernmost latitude</language>
</MetadataType>
<MetadataType>
    <Name>CoordinatesSouthernmostLatitude</Name>
    <language name="de">Koordinaten: südlichster Breitengrad</language>
    <language name="en">Coordinates: southernmost latitude</language>
</MetadataType>

<!-- ... -->

<!-- MODS Export -->
<Metadata>
    <InternalName>CoordinatesWesternmostLongitude</InternalName>
    <WriteXPath>./mods:mods/mods:subject/mods:cartographics/#mods:coordinates[@type='western']</WriteXPath>
</Metadata>
<Metadata>
    <InternalName>CoordinatesEasternmostLongitude</InternalName>
    <WriteXPath>./mods:mods/mods:subject/mods:cartographics/#mods:coordinates[@type='eastern']</WriteXPath>
</Metadata>
<Metadata>
    <InternalName>CoordinatesNorthernmostLatitude</InternalName>
    <WriteXPath>./mods:mods/mods:subject/mods:cartographics/#mods:coordinates[@type='northern']</WriteXPath>
</Metadata>
<Metadata>
    <InternalName>CoordinatesSouthernmostLatitude</InternalName>
    <WriteXPath>./mods:mods/mods:subject/mods:cartographics/#mods:coordinates[@type='southern']</WriteXPath>
</Metadata>

Goobi viewer Indexer

<MD_GPS_POLYGON>
    <list>
        <item>
            <xpath>concat(mets:xmlData/mods:mods/mods:subject/mods:cartographics/mods:coordinates[@type="western"], ' ', mets:xmlData/mods:mods/mods:subject/mods:cartographics/mods:coordinates[@type="eastern"], ' ', mets:xmlData/mods:mods/mods:subject/mods:cartographics/mods:coordinates[@type="northern"], ' ', mets:xmlData/mods:mods/mods:subject/mods:cartographics/mods:coordinates[@type="southern"])</xpath>
            <addToDefault>false</addToDefault>
            <addUntokenizedVersion>false</addUntokenizedVersion>
            <onefield separator="#SPACE#">true</onefield>
            <geoJSONSource addSearchField="true">sexagesimal:polygon</geoJSONSource>
        </item>
    </list>
</MD_GPS_POLYGON>

Example

The point coordinates are marked individually and are aggregated to a rectangle during indexing. The screenshot below shows an atlas where the individual maps of the structural elements have also been georeferenced.

<mods:cartographics>
    <mods:coordinates type="western">E0081339</mods:coordinates>
    <mods:coordinates type="eastern">E0083333</mods:coordinates>
    <mods:coordinates type="northern">N0533708</mods:coordinates>
    <mods:coordinates type="southern">N0532442</mods:coordinates>
</mods:cartographics>

Search via URL

Since version 4.6 the Goobi viewer supports the search for coordinates. GML points and polygons (as in DenkXweb) as well as mods:coordinates can be indexed as geoJSON and displayed on maps. Furthermore, faceting queries for searches for points, points in polygons, polygon intersections can be passed directly in the URL. For this the coordinates are indexed as WKT. To allow faceting to be as versatile as possible, the entire WKT query must be formulated in the client (i.e., in JavaScript, for example). Examples are:

  • Search for point: https://viewer.example.org/search/-/-/1/-/WKT_COORDS:"Intersects(POINT(9.86929194928373 51.8163517626803)) distErrPct=0"/

  • Contained in the polygon (for example, points): https://viewer.example.org/search/-/-/1/-/WKT_COORDS:"IsWithin(POLYGON((0 0, 0 90, 90 90, 90 0, 0 0))) distErrPct=0"/

  • Partially contained in polygon (for example, other polygon): https://viewer.example.org/search/-/-/1/-/WKT_COORDS:"Intersects(POLYGON((0 0, 0 90, 90 90, 90 0, 0 0))) distErrPct=0"/

  • Not included in the polygon: https://viewer.example.org/search/-/-/1/-/WKT_COORDS:"IsDisjointTo(POLYGON((0 0, 0 -90, -90 -90, -90 0, 0 0))) distErrPct=0"/

More information about indexing can be found in chapter 2.5 of the Goobi viewer indexer configuration.

Configuration

In order to display indexed geocoordinates on a map, a corresponding Solr query must be formulated. This can be for example all plants with indexed geo-coordinates:

+BOOL_WKT_COORDS:true

Alternatively, all records that have geo-coordinates in a specific field and belong to a collection:

+MD_COORDINATES:* +DC:archives*

It is important that the fields in which the coordinates have been indexed are made known to the Goobi viewer. For this, the field must be defined in the following list within config_viewer.xml:

<maps>
    <coordinateFields includeMetadataDocs="false">
        <field>MD_GEOJSON_POINT</field>
        <field>NORM_COORDS_GEOJSON</field>
    </coordinateFields>
</maps>

The attribute includeMetadataDocs determines whether SOLR documents of type METADATA should also be searched for the configured fields, or only in documents of type DOCSTRCT. Activation may lead to more coordinates being found under certain circumstances, but may increase the loading time.

Previous1.5 MultilingualismNext1.7 Sub collections

Last updated 3 years ago

Was this helpful?

Bounding Box Tool: Metadata Enrichment for Catalogue Records by Visually Selecting Geographic Coordinates (Latitude / Longitude) for Maps
Logo