From 0ba6769c767640be9a2822322823283363358a23 Mon Sep 17 00:00:00 2001
From: Frank Morgner <morgnerf@ub.uni-leipzig.de>
Date: Mon, 10 Sep 2018 11:26:55 +0200
Subject: [PATCH] refs #13831 * adds method getCartographicData at
 SolrMarcFincTrait for retrieval of marc21 subfields 255$a$c

---
 .../finc/RecordDriver/SolrMarcFincTrait.php   | 28 +++++++++++++++++++
 1 file changed, 28 insertions(+)

diff --git a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
index b32373607b1..20c805c7a91 100644
--- a/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
+++ b/module/finc/src/finc/RecordDriver/SolrMarcFincTrait.php
@@ -1915,6 +1915,34 @@ trait SolrMarcFincTrait
         return $this->getFirstFieldValue('245', ['n']);
     }
 
+    /**
+     * Get Cartographic Mathematical Data
+     *
+     * @return array    Return multidimensional array with key of 'coordinates'
+     *                  and 'scale'
+     * @access public
+     */
+    public function getCartographicData() {
+
+        // internal vars
+        $retVal = [];
+        $i = 0;
+        // map of subfield to returning value key
+        $mapper = ['a' => 'scale', 'c' => 'coordinates'];
+
+        $fields = $this->getMarcRecord()->getFields('255');
+        foreach($fields as $f) {
+            foreach ($mapper as $subfield => $key) {
+                $sub = $f->getSubField($subfield);
+                if ($sub) {
+                    $retVal[$i][$key] = $sub->getData();
+                }
+            }
+            $i++;
+        }
+        return $retVal;
+    }
+
     /**
      * Get an array of content notes.
      *
-- 
GitLab