/** * Получить маршруты * @param array $addressIds координаты адресов * @return Route */ public static function getRoutes(array $addressIds) { $keyCache = Helper::hashData($addressIds); if ($data = CacheData::get($keyCache)) { return $data; } $response = GoogleMapsDirectionsAPI::getRoutesByIds($addressIds, true); if (!$response) { return []; } $routes = []; foreach ($response->routes as $route) { $routes = array_merge($routes, self::prepareLegs($route->legs, $route->summary)); } self::prepareSafetyLevel($routes); CacheData::set($keyCache, $routes); return $routes; }
/** * Получить адреса по Ids * @param array $ids * @return array */ public static function getIds(array $ids) { $keyCache = Helper::hashData($ids); if ($data = CacheData::get($keyCache)) { return $data; } $address = []; foreach ($ids as $id) { $response = GoogleMapsGeocodingAPI::getPlaceId($id); $response = self::prepareAddress($response); $address = array_merge($address, $response); } CacheData::set($keyCache, $address); return $address; }