从 php-world-cities-array 解析区域代码

Parsing region code from php-world-cities-array

我从 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 中区域的人类可读名称?

区域代码标识行政区域。例如DE-01标识巴登-符腾堡地区,对应的记录如下:

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

要将区域代码 01 破译为巴登-符腾堡州,您必须构建另一个阵列。您可以使用反向地理编码服务,例如 Google 地图 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"。

记得在解码区域时构建一个数组。否则会有太多重复的地图请求 API 并且您将受到速率限制。