我正在尝试将我的长度和lat从HTML 5的位置请求转换为可读的地址。我正在尝试为此使用Opencage地理编码,但它一直给出NEX错误:
类'Geocoder Provider Opencage Opencage'找不到
这是我的代码,就像文档所说的
一样<?php
require "vendor/autoload.php";
use HttpAdapterGuzzle6Client as GuzzleAdapter;
use GeocoderQueryGeocodeQuery;
use GeocoderQueryReverseQuery;
$adapter = new GuzzleAdapter();
$provider = new GeocoderProviderOpenCageOpenCage($adapter, 'APIKEY');
$geocoder = new GeocoderStatefulGeocoder($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";
?>
从您链接到的文档中:
有两个可以使用
的PHP库
您已经安装了一个并使用了另一个示例代码。因此,要么运行此命令:
composer require willdurand/geocoder
并继续使用上面的代码。
或,用这样的东西替换代码:
$geocoder = new OpenCageGeocoderGeocoder('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'],
]);
}