0

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

根据在 github 上找到的 Geocoder-php 的这些文档,您可以从集合中检索属性,例如通过 using 的街道名称、通过 using$geo->getStreetName()的城市、通过 using$geo->getCity()的国家$geo->getCountry()等,但是没有返回州或省的方法.

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

我用的时候可以看到省$geo->getAdminLevels()->get()。哪个返回

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"
    }
  ]
}

但我无法抢占该省(萨斯喀彻温省)。

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

编辑:

$geo->getAdminLevels()->get(1)给我这个

AdminLevel {#690 ▼
  -level: 1
  -name: "Saskatchewan"
  -code: "SK"
}

但是$geo->getAdminLevels()->get(1)->name;给我这个错误

Undefined property: Geocoder\Provider\GoogleMaps\Model\GoogleAddress::$getAdminLevels
4

2 回答 2

1

解决办法就是这样称呼它;

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

get()在这种情况下,获取您希望返回的索引的值。

您可能需要检查 thegetAdminLevels()get(1)返回值是否有时可能返回空值。你可以通过实现类似的东西来做到这一点!empty($geo->getAdminLevels())

于 2019-04-11T22:29:27.683 回答
0

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

于 2019-04-11T22:49:42.960 回答