Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- private function saveCoordinates(Address $address) : void
- {
- $preparedAddress = str_replace(' ', '+', $address->address . '+' . $address->postcode . '+' . $address->town);
- $geocode = file_get_contents('https://maps.googleapis.com/maps/api/geocode/json?address=' . $preparedAddress . '&key=' . env('GOOGLE_API_KEY'));
- $output = json_decode($geocode);
- try {
- $address->lat = $output->results[0]->geometry->location->lat;
- $address->lng = $output->results[0]->geometry->location->lng;
- } catch (\Exception $e) {
- $address->lat = null;
- $address->lng = null;
- Log::debug('error in counting distance: ' . json_encode($e));
- }
- $address->save();
- }
- private function saveDistance(Address $address) : void
- {
- $lat1 = $address->lat;
- $lon1 = $address->lng;
- $lat2 = config('addresses.lat');
- $lon2 = config('addresses.lng');
- if (($lat1 == $lat2) && ($lon1 == $lon2)) {
- $address->distance = 0;
- $address->save();
- } else {
- $theta = $lon1 - $lon2;
- $dist = sin(deg2rad($lat1)) * sin(deg2rad($lat2)) + cos(deg2rad($lat1)) * cos(deg2rad($lat2)) * cos(deg2rad($theta));
- $dist = acos($dist);
- $dist = rad2deg($dist);
- $km = $dist * config('addresses.const');
- $address->distance = $km;
- $address->save();
- }
- }
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement