Как мне восстановить значение столицы или долготы и широты, потому что это то, что принимает openweathermap, а у меня есть только названия стран?

#json #symfony #openweathermap

#json #symfony #openweathermap

Вопрос:

Я запускаю проект symfony 3.4, используя openweather-bundle для генерации данных о погоде и статистики, и я хочу выполнить поиск по названию страны, но API, похоже, не поддерживает это, поэтому я в затруднительном положении.

Единственное решение, которое приходит на ум, — это получить широту и долготу с помощью JavaScript, но я не знаю, как справиться с этим в контроллере

Вот мой контроллер

 public function PaysMeteoAction($name)
{
    $em = $this->getDoctrine()->getManager();
    $pays = $em->getRepository("AppBundle:Pays")->findOneBy(array('name' => $name));
    $openWeather = $this->get('dwr_open_weather');
    $weather = $openWeather->setType('Weather')->getByCityName('London');

    return $this->render('DwrOpenWeatherBundle:Default:weather-basic-large.html.twig', array(
        'weather' => $weather,
        'pays' => $pays,
    ));
}
  

Ветка по умолчанию предоставляется пакетом, и мой маршрут следующий

 pays_meteo:
    path:     /meteo/{name}
    defaults: { _controller: "ExperienceBundle:Pays:PaysMeteo" }
  

Комментарии:

1. Возможно, вы могли бы сохранить столицу каждой страны в своей базе данных и использовать это для вызова open weather api. Вы можете найти список здесь restcountries.eu .

Ответ №1:

Мне просто нужно вставить столицы в базу данных.