From 689e2872c70132afb6d946a2ff8669f2b6477228 Mon Sep 17 00:00:00 2001 From: Seamus Lee Date: Wed, 1 Jun 2022 10:56:28 +1000 Subject: [PATCH] [REF] Improve Get Coordinates by supporting other geocoding providers other than google --- Civi/Api4/Action/Address/GetCoordinates.php | 7 ++++++- 1 file changed, 6 insertions(+), 1 deletion(-) diff --git a/Civi/Api4/Action/Address/GetCoordinates.php b/Civi/Api4/Action/Address/GetCoordinates.php index 86bcd16a49..4146edf4e6 100644 --- a/Civi/Api4/Action/Address/GetCoordinates.php +++ b/Civi/Api4/Action/Address/GetCoordinates.php @@ -31,7 +31,12 @@ class GetCoordinates extends \Civi\Api4\Generic\AbstractAction { protected $address; public function _run(Result $result) { - $coord = \CRM_Utils_Geocode_Google::getCoordinates($this->address); + $gecodingClassName = CRM_Utils_GeocodeProvider::getUsableClassName(); + $geocodingProvider = CRM_Utils_GeocodeProvider::getConfiguredProvider(); + if (!is_callable([$geocodingProvider, 'getCoordinates'])) { + throw new \API_Exception('Geocoding provider does not support getCoordinates'); + } + $coord = \$geocodingClassName::getCoordinates($this->address); if (isset($coord['geo_code_1'], $coord['geo_code_2'])) { $result[] = $coord; } -- 2.25.1