В Лондоне название города находится в объекте с типом postal_town
, тогда как в Амстердаме оно находится в объекте с типом locality
, а в Токио - в объекте с типом administrative_area_level_1
.
Так как мне решить, какой объект выбрать, чтобы извлечь название города, когда оно меняется от города к городу?
В настоящее время у меня есть кое-что, что наполовину работает:
const checkCity = data.address_components.find((component) =>
component.types.includes('locality')
);
const checkTown = data.address_components.find((component) =>
component.types.includes('postal_town')
);
if (checkCity) {
city = checkCity.long_name
} else if (checkTown) {
city = checkTown.long_name
}
Однако, используя этот код, я не могу получить правильное название города Токио, я получаю населенный пункт Минато-ку, который является приходом в Токио.
Результат из Токио:
address_components: Array(8)
0: {long_name: "Sotobori Dori", short_name: "都道405号線", types: Array(1)}
1: {long_name: "1", short_name: "1", types: Array(3)}
2: {long_name: "2 Chome", short_name: "2 Chome", types: Array(3)}
3: {long_name: "Motoakasaka", short_name: "Motoakasaka", types: Array(3)}
4:
long_name: "Minato-ku"
short_name: "Minato-ku"
types: (2) ["locality", "political"]
__proto__: Object
5:
long_name: "Tōkyō-to"
short_name: "Tōkyō-to"
types: (2) ["administrative_area_level_1", "political"]
Результат из Лондона:
address_components: Array(7)
0: {long_name: "27-29", short_name: "27-29", types: Array(1)}
1: {long_name: "King Street", short_name: "King St", types: Array(1)}
2:
long_name: "London"
short_name: "London"
types: ["postal_town"]
__proto__: Object
3:
long_name: "Greater London"
short_name: "Greater London"
types: (2) ["administrative_area_level_2", "political"]
__proto__: Object
4: {long_name: "England", short_name: "England", types: Array(2)}
5: {long_name: "United Kingdom", short_name: "GB", types: Array(2)}
6: {long_name: "WC2E 8JB", short_name: "WC2E 8JB", types: Array(1)}
Результат из Амстердама:
address_components: Array(8)
0: {long_name: "9", short_name: "9", types: Array(1)}
1: {long_name: "Slijkstraat", short_name: "Slijkstraat", types: Array(1)}
2: {long_name: "Amsterdam-Centrum", short_name: "Amsterdam-Centrum", types: Array(3)}
3:
long_name: "Amsterdam"
short_name: "Amsterdam"
types: (2) ["locality", "political"]
__proto__: Object
4: {long_name: "Amsterdam", short_name: "Amsterdam", types: Array(2)}
5: {long_name: "Noord-Holland", short_name: "NH", types: Array(2)}
6: {long_name: "Netherlands", short_name: "NL", types: Array(2)}
7: {long_name: "1012 CM", short_name: "1012 CM", types: Array(1)}