从 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 并且您将受到速率限制。
我从 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 并且您将受到速率限制。