我想使用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;
答案 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