2016-03-30 57 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與它的極限發揮,文檔的是第一部分是誤導:(