2016-03-30 21 views
0

我利用地理编码PHP为一个项目做地理编码。然而,当我运行下面的代码,其中大部分是相同的,在他们的网站,它不返回任何东西:getCoordinates()的地理编码器,PHP不工作

<?php 

require_once 'vendor/autoload.php'; 

$geocoder = new \Geocoder\ProviderAggregator(); 
$adapter = new \Ivory\HttpAdapter\CurlHttpAdapter(); 

$chain = new \Geocoder\Provider\Chain([ 
    new \Geocoder\Provider\FreeGeoIp($adapter), 
    new \Geocoder\Provider\HostIp($adapter), 
    new \Geocoder\Provider\GoogleMaps($adapter, 'fr_FR', 'France', true) 
]); 
$geocoder->registerProvider($chain); 
try { 
    $geocode = $geocoder->geocode('10 rue Gambetta, Paris, France'); 
    print_r($geocode->getCoordinates()); 
} catch (Exception $e) { 
    echo $e->getMessage(); 
} 
?> 

由PHP返回的错误是:

Call to undefined method Geocoder\\Model\\AddressCollection::getCoordinates() 

,我可以即使在重新阅读文档和多个演示和教程几次之后,也无法弄清楚什么是错误的。

+0

我建议更简单的东西?https://ipinfo.io/开发商 – Derek

+0

@OliverQueen尼斯,我可能会使用在某处的其他项目,但是,我需要在这种情况下,需要有点更准确(如以WiFi或GPS -determined位置),比基于IP的位置。 – laef

回答

0
$geocode = $geocoder->geocode('10 rue Gambetta, Paris, France'); 
print_r($geocode->get(0)->getCoordinates()); 

使用获得第一或http://geocoder-php.org/Geocoder/

IMO与它的极限发挥,文档的是第一部分是误导:(