如何使用Geocoder Php获得州或省

问题描述 投票:0回答:2

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

根据these docs found on github的Geocoder-php,您可以检索集合中的属性,例如使用$geo->getStreetName()的街道名称,使用$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 Geocoder进行Laravel项目。)

编辑:

$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
laravel geocoding geocoder
2个回答
1
投票

对此的解决方案是这样称呼它;

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

在此上下文中,get()将获取您希望返回的索引的值。

您可能想要检查getAdminLevels()get(1)是否返回值,如果它们有时可能返回空值。你可以通过实现像!empty($geo->getAdminLevels())这样的东西来做到这一点


0
投票

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

© www.soinside.com 2019 - 2024. All rights reserved.