解析来自php-world-cities-array

时间:2015-07-12 12:47:15

标签: php geonames

我从https://github.com/tapvt/php-world-cities-array拉出了Cities数组。除美国外,每个地区都缩写

array (
  'city' => 'Sant Julià de Lòria',
  'region' => '06',
  'country' => 'AD',
  'latitude' => '42.46372',
  'longitude' => '1.49129',
)

由于许多国家/地区有多个同名城市,我需要根据地区进行区分。为了显示区域,我需要的不仅仅是用户可以识别的数字。对于美国来说,地区是以适当的方式进行的,但对于像德国这样的其他国家来说,它的数字很遗憾不是人类可读的。

我的问题是如何在php-world-cities-array中为区域提供人类可读的名称?

1 个答案:

答案 0 :(得分:2)

区域代码标识管理区域。例如,DE-01标识了Baden-Württemberg地区,这里是相应的记录:

  array (
    'city' => 'Stuttgart',
    'region' => '01',
    'country' => 'DE',
    'latitude' => '48.78232',
    'longitude' => '9.17702',
  )

要将区域代码01解密为Baden-Württemberg,您必须构建另一个阵列。您可以使用反向地理编码服务,例如Google Maps API。例如:

https://maps.googleapis.com/maps/api/geocode/json?address=48.78232,9.17702&hl=en&sensor=false

这将为您提供每个政治行政级别的所有名称。区域ID应映射到省级别,或“administrative_level_1”。在上面的示例中,如果您使用short_name字段,则会解析为“Baden-Württemberg”或“BW”。

请记住在解码区域时构建数组。否则,对Maps API的重复请求会太多,您将获得速率限制。