Класс 'Geocoder \ Provider \ OpenCage \ OpenCage' не найден - PullRequest
0 голосов
/ 14 мая 2019

Я пытаюсь перевести мои long и lat из моего html 5 запроса местоположения в читаемый адрес. Я пытаюсь использовать OpenCage Geocoding для этого, но он продолжает выдавать ошибку Nex:

Класс 'Geocoder \ Provider \ OpenCage \ OpenCage' не найден

это мой код, как документация сказал

<?php
require "vendor/autoload.php";

use Http\Adapter\Guzzle6\Client as GuzzleAdapter;
use Geocoder\Query\GeocodeQuery;
use Geocoder\Query\ReverseQuery;

$adapter  = new GuzzleAdapter();
$provider = new \Geocoder\Provider\OpenCage\OpenCage($adapter, 'APIKEY');
$geocoder = new \Geocoder\StatefulGeocoder($provider, 'en');

$results = $geocoder->geocodeQuery(GeocodeQuery::create('1 Hacker Way, Menlo Park, 94025'));
# print_r($results);

$coords = $results->first()->getCoordinates();

echo json_encode([ 'lat' => $coords->getLatitude(), 'lon' => $coords->getLongitude() ]) . "\n";

?>

1 Ответ

1 голос
/ 14 мая 2019

Из документации, на которую вы ссылались:

Вы можете использовать две библиотеки PHP

Вы установили один и использовали пример кода из другого. Итак, либо выполните эту команду:

composer require willdurand/geocoder

И продолжайте использовать код выше.

Или замените свой код на что-то вроде этого:

$geocoder = new \OpenCage\Geocoder\Geocoder('YOUR-API-KEY');
$result = $geocoder->geocode('1 Hacker Way, Menlo Park, 94025');
if ($result && $result['total_results'] > 0) {
    $first = $result['results'][0];
    echo json_encode([
        'lat' => $first['geometry']['lat'],
        'lon' => $first['geometry']['lng'],
    ]);

}
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...