gpt4 book ai didi

internationalization - 谷歌地图地理编码 API : How to get city/region names *consistently* in English or local language?

转载 作者:行者123 更新时间:2023-12-01 08:04:21 26 4
gpt4 key购买 nike

当我提出以下请求(注意 language=en 部分!)时,波兰华沙的纬度和经度,
https://maps.googleapis.com/maps/api/geocode/json?latlng=52.23,21.01&language=en
我得到一个结果列表,其中包括以下内容:

结果 3(邻域):

{
“地址组件”:[
{
"long_name": "Śródmieście Północne",
"short_name": "Śródmieście Północne",
“类型”:[“邻里”,“政治”]
},
{
"long_name": "Śródmieście",
"short_name": "Śródmieście",
“类型”:[“sublocality_level_1”、“sublocality”、“political”]
},
{
"long_name": "Warszawa", <-- 波兰城市
"short_name": "华沙",
“类型”:[“地方”,“政治”]
},
{
"long_name": "华沙",
"short_name": "华沙",
“类型”:[“administrative_area_level_3”,“政治”]
},
{
"long_name": "华沙",
"short_name": "华沙",
“类型”:[“administrative_area_level_2”,“政治”]
},
{
"long_name": "mazowieckie", <-- 波兰语地区
“short_name”:“mazowieckie”,
“类型”:[“administrative_area_level_1”,“政治”]
},
{
"long_name": "波兰",
“short_name”:“PL”,
“类型”:[“国家”,“政治”]
}
],
[...]
“place_id”:“ChIJjaxkh4rMHkcR1lza9qbbnrU”,
“类型”:[“邻里”,“政治”]
}

结果 4 (sublocality_level_1):

{
“地址组件”:[
{
"long_name": "Śródmieście",
"short_name": "Śródmieście",
“类型”:[“sublocality_level_1”、“sublocality”、“political”]
},
{
"long_name": "Warsaw", <-- 英文城市
"short_name": "华沙",
“类型”:[“地方”,“政治”]
},
{
"long_name": "华沙",
"short_name": "华沙",
“类型”:[“administrative_area_level_3”,“政治”]
},
{
"long_name": "华沙",
"short_name": "华沙",
“类型”:[“administrative_area_level_2”,“政治”]
},
{
"long_name": "Masovian Voivodeship", <-- region in English
"short_name": "Masovian Voivodeship",
“类型”:[“administrative_area_level_1”,“政治”]
},
{
"long_name": "波兰",
“short_name”:“PL”,
“类型”:[“国家”,“政治”]
}
],
[...]
“place_id”:“ChIJ8e41PvbMHkcRit4n8qe36Ns”,
“类型”:[“sublocality_level_1”、“sublocality”、“political”]
},

主要问题是相同地址组件(locality、administrative_area_level_1)的不一致 - 有时是英语(根据要求),有时是本地语言。如果没有其他 ID 知道这些是指相同的管理现实,我无法确定这一点,除非我使用了另一个英文和本地地理名称来源并进行了一些模式匹配。

有没有办法解决这个问题?或者有人可以建议没有此类问题的反向地理编码服务吗?

非常感谢!

最佳答案

我遇到了同样的问题。我写了一个 if/else组以按优先顺序获取位置数据。

foreach ($data->results[0]->address_components as $stuff) {
// city
if ($stuff->types[0] == 'locality') {
$zip->locality_short = $stuff->short_name;
$zip->locality_long = $stuff->long_name;
} elseif ($stuff->types[0] == 'sublocality_level_1') {
$zip->locality_short = $stuff->short_name;
$zip->locality_long = $stuff->long_name;
} elseif ($stuff->types[0] == 'neighborhood') {
$zip->locality_short = $stuff->short_name;
$zip->locality_long = $stuff->long_name;
}
// state
if ($stuff->types[0] == 'administrative_area_level_1') {
$zip->location_short = $stuff->short_name;
$zip->location_long = $stuff->long_name;
}
// country
if ($stuff->types[0] == 'country') {
$zip->country_short = $stuff->short_name;
$zip->country_long = $stuff->long_name;
}
}

关于internationalization - 谷歌地图地理编码 API : How to get city/region names *consistently* in English or local language?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/32443212/

26 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com