/** * * @param array $resultDecoded * @return LookupResult */ private function convertToLookupResult($resultDecoded) { $resultProp = $resultDecoded['resourceSets'][0]['resources'][0]; $address = $resultProp['address']; $geocode = $resultProp['geocodePoints'][0]['coordinates']; $countryIso = array_search($address['countryRegion'], LookupResult::$ISO_TABLE); if ($countryIso) { $countryIso = LookupResult::remapIso($countryIso); } return new LookupResult($address['postalCode'], $countryIso, $geocode[1], $geocode[0], $resultProp['adminDistrict'], $address['countryRegion']); }
/** * * @param \models\services\LookupResult $lookupResult * @param type $preciseLong * @param type $preciseLat * @return \models\entities\GeocodeCached */ protected function cacheLookup(LookupResult $lookupResult, $preciseLong, $preciseLat, $extraData = array()) { $data = array('longitude' => $preciseLong, 'latitude' => $preciseLat) + $lookupResult->getCachingData($extraData); if ($data['longitude'] && $data['longitude']) { $saveId = $this->geocodeCachedManager->createEntity($data)->save(true); return $this->geocodeCachedManager->getEntity($saveId); } else { return null; } }