大佬教程收集整理的这篇文章主要介绍了php-Google地理编码.解析JSON问题,大佬教程大佬觉得挺不错的,现在分享给大家,也给大家做个参考。
我想从他们的邮政编码(加拿大/美国)的Google地理编码中获取用户所在的城市,州/省,国家/地区.我将数据检索为JSON:https://developers.google.com/maps/documentation/geocoding/#JSON
问题在于,“ address_components”的数量/顺序并不总是相同的.我使用的是:$geocodedinfo [‘results’] [0] [‘address_components’] [3] [‘short_name’];
但我很快意识到,这并不总是省/州,因为有时Google会在“ address_components”下添加一个额外的元素.
有没有一种方法可以仅针对我需要的具体信息(例如:城市,州/省,国家/地区)来解析结果?
编辑我实际上在得到JSON时解码JSON json_decode($result,truE)
Array
(
[results] => Array
(
[0] => Array
(
[address_components] => Array
(
[0] => Array
(
[long_name] => V2X 2P6
[short_name] => V2X 2P6
[types] => Array
(
[0] => postal_code
)
)
[1] => Array
(
[long_name] => Maple Ridge
[short_name] => Maple Ridge
[types] => Array
(
[0] => locality
[1] => political
)
)
[2] => Array
(
[long_name] => Maple Ridge
[short_name] => Maple Ridge
[types] => Array
(
[0] => administrative_area_level_3
[1] => political
)
)
[3] => Array
(
[long_name] => Greater Vancouver Regional DiStrict
[short_name] => Greater Vancouver Regional DiStrict
[types] => Array
(
[0] => administrative_area_level_2
[1] => political
)
)
[4] => Array
(
[long_name] => British columbia
[short_name] => BC
[types] => Array
(
[0] => administrative_area_level_1
[1] => political
)
)
[5] => Array
(
[long_name] => Canada
[short_name] => CA
[types] => Array
(
[0] => country
[1] => political
)
)
)
[formatted_address] => Maple Ridge, BC V2X 2P6, Canada
[geometry] => Array
(
[bounds] => Array
(
[northeast] => Array
(
[lat] => 49.2214351
[lng] => -122.6577849
)
[southWest] => Array
(
[lat] => 49.219268
[lng] => -122.663613
)
)
[LOCATIOn] => Array
(
[lat] => 49.2202679
[lng] => -122.660587
)
[LOCATIOn_type] => APPROXIMATE
[viewport] => Array
(
[northeast] => Array
(
[lat] => 49.2217005303
[lng] => -122.6577849
)
[southWest] => Array
(
[lat] => 49.2190025697
[lng] => -122.663613
)
)
)
[types] => Array
(
[0] => postal_code
)
)
)
[status] => OK
)
解决方法:
您将不得不遍历结果.
大多数相关的PHP函数均不支持多维数组,而确实支持多维数组.
您可能想要这样的东西:
foreach ($geocodedinfo["results"] as $result) {
foreach ($result["address_components"] as $address) {
// Repeat the following for each desired type
if (in_array("country", $address["types"])) {
$country = $address["long_name"];
}
}
}
以上是大佬教程为你收集整理的php-Google地理编码.解析JSON问题全部内容,希望文章能够帮你解决php-Google地理编码.解析JSON问题所遇到的程序开发问题。
如果觉得大佬教程网站内容还不错,欢迎将大佬教程推荐给程序员好友。
本图文内容来源于网友网络收集整理提供,作为学习参考使用,版权属于原作者。
如您有任何意见或建议可联系处理。小编QQ:384754419,请注明来意。