如何使用Geocoder Php

时间:2019-04-11 06:44:17

标签: laravel geocoding geocoder

我想使用Geocoder-php反转地理编码坐标以获取地址。我可以使用$geo = app('geocoder')->reverse($lat, $lng)->get()来获取地址集合。

对于Geocoder-php,根据these docs found on github,您可以从集合中检索属性,例如,使用$geo->getStreetName()的街道名称,使用$geo->getCity()的城市,使用{ {1}}等,但是没有返回州或省的方法。

如何从集合中获取州或省?

使用$geo->getCountry()时可以看到该省。哪个返回

$geo->getAdminLevels()->get()

但是我无法占领萨斯喀彻温省。

(我在Laravel项目中使用Laravel Geocoder。)

编辑:

AdminLevelCollection {#900 ▼ -adminLevels: array:2 [▼ 1 => AdminLevel {#901 ▼ -level: 1 -name: "Saskatchewan" -code: "SK" } 2 => AdminLevel {#902 ▼ -level: 2 -name: "Division No. 16" -code: "Division No. 16" } ] } 给我这个

$geo->getAdminLevels()->get(1)

但是AdminLevel {#690 ▼ -level: 1 -name: "Saskatchewan" -code: "SK" } 会给我这个错误

$geo->getAdminLevels()->get(1)->name;

2 个答案:

答案 0 :(得分:1)

解决方案是这样称呼;

$geo->getAdminLevels()->get(1)->getName();

get()在这种情况下采用您希望返回的索引值。

如果getAdminLevels()get(1)有时可能返回空值,则可能要检查它们是否返回值。您可以通过实现类似!empty($geo->getAdminLevels())

的方式来实现

答案 1 :(得分:0)

你可以做 $geo->getAdminLevels()->get()->adminLevels[0]->name$geo->getAdminLevels()->get()->adminLevels[1]->name

相关问题