Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/powershell/12.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Php 如何从json值中获取位置值?_Php_Json - Fatal编程技术网

Php 如何从json值中获取位置值?

Php 如何从json值中获取位置值?,php,json,Php,Json,首先,我使用这个链接从城市名称中获取长度和长度 https://maps.googleapis.com/maps/api/geocode/json?address=usa,califonia,Los%20Angeles&key={API-KEY}&language=EN 徖 当加载这个url时,我得到了这个json格式 { "results" : [ { "address_components" : [ {

首先,我使用这个链接从城市名称中获取长度和长度

https://maps.googleapis.com/maps/api/geocode/json?address=usa,califonia,Los%20Angeles&key={API-KEY}&language=EN

当加载这个url时,我得到了这个json格式

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Los Angeles",
               "short_name" : "Los Angeles",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Los Angeles County",
               "short_name" : "Los Angeles County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "California",
               "short_name" : "CA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Los Angeles, CA, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 34.3373061,
                  "lng" : -118.1552891
               },
               "southwest" : {
                  "lat" : 33.7036519,
                  "lng" : -118.6681759
               }
            },
            "location" : {
               "lat" : 34.0522342,
               "lng" : -118.2436849
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 34.3373061,
                  "lng" : -118.1552891
               },
               "southwest" : {
                  "lat" : 33.7036519,
                  "lng" : -118.6681759
               }
            }
         },
         "place_id" : "ChIJE9on3F3HwoAR9AhGJW_fL-I",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}
我想从json格式获取
location==>lat
=34.0522342和
location==>lng
=-118.2436849

{
   "results" : [
      {
         "address_components" : [
            {
               "long_name" : "Los Angeles",
               "short_name" : "Los Angeles",
               "types" : [ "locality", "political" ]
            },
            {
               "long_name" : "Los Angeles County",
               "short_name" : "Los Angeles County",
               "types" : [ "administrative_area_level_2", "political" ]
            },
            {
               "long_name" : "California",
               "short_name" : "CA",
               "types" : [ "administrative_area_level_1", "political" ]
            },
            {
               "long_name" : "United States",
               "short_name" : "US",
               "types" : [ "country", "political" ]
            }
         ],
         "formatted_address" : "Los Angeles, CA, USA",
         "geometry" : {
            "bounds" : {
               "northeast" : {
                  "lat" : 34.3373061,
                  "lng" : -118.1552891
               },
               "southwest" : {
                  "lat" : 33.7036519,
                  "lng" : -118.6681759
               }
            },
            "location" : {
               "lat" : 34.0522342,
               "lng" : -118.2436849
            },
            "location_type" : "APPROXIMATE",
            "viewport" : {
               "northeast" : {
                  "lat" : 34.3373061,
                  "lng" : -118.1552891
               },
               "southwest" : {
                  "lat" : 33.7036519,
                  "lng" : -118.6681759
               }
            }
         },
         "place_id" : "ChIJE9on3F3HwoAR9AhGJW_fL-I",
         "types" : [ "locality", "political" ]
      }
   ],
   "status" : "OK"
}
然后我使用这个代码

<?php
$url = 'https://maps.googleapis.com/maps/api/geocode/json?address=usa,califonia,Los%20Angeles&key={API-KEY}&language=EN';
$json = file_get_contents($url);
$json_data = json_decode($json, true);

$location_lat =  $json_data['results']['location']['lat'];
$location_lng =  $json_data['results']['location']['lng'];

echo $location_lat;
echo $location_lng;
?>


但我没有得到任何数据?我该怎么做呢?

如果您获得了正确的数据层,那么您应该使用

$location_lat =  $json_data['results'][0]['geometry']['location']['lat'];
$location_lng =  $json_data['results'][0]['geometry']['location']['lng'];

echo $location_lat.PHP_EOL;
echo $location_lng;
哪个输出

34.0522342
-118.2436849
您可以编辑到

$location_lat =  $json_data['results'][0]['geometry']['location']['lat'];
$location_lng =  $json_data['results'][0]['geometry']['location']['lng'];

在响应中,您在哪里看到
数据
?你的道路错了。另外,在“data”之后缺少一个
]
,因此语法也不正确。只是
print\r($json\u数据)并从那里开始构建你的道路。数据中的
位置在哪里?(在
几何体下
)@Nigel-Ren--“位置”:{“lat”:34.0522342,“lng”:-118.2436849},`@Nigel-Ren--位置在几何体的外侧