112*_*233 2 php json google-maps geocoding reverse-geocoding
这是JSON输出:我只想获取formatted_address值&long_name&short_name。我提到了人们已经问过的问题,但是我做错了。指:
{
"results" : [
{
"address_components" : [
{
"long_name" : "Jalan Sungai Chua",
"short_name" : "B11",
"types" : [ "route" ]
},
{
"long_name" : "Sungai Chua",
"short_name" : "Sungai Chua",
"types" : [ "sublocality_level_1", "sublocality", "political" ]
},
{
"long_name" : "Kajang",
"short_name" : "Kajang",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Selangor",
"short_name" : "Selangor",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Malaysia",
"short_name" : "MY",
"types" : [ "country", "political" ]
},
{
"long_name" : "43000",
"short_name" : "43000",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "Jalan Sungai Chua, Sungai Chua, 43000 Kajang, Selangor, Malaysia",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 2.9932816,
"lng" : 101.787477
},
"southwest" : {
"lat" : 2.9932814,
"lng" : 101.7873144
}
},
"location" : {
"lat" : 2.9932815,
"lng" : 101.7873957
},
"location_type" : "GEOMETRIC_CENTER",
"viewport" : {
"northeast" : {
"lat" : 2.994630480291502,
"lng" : 101.7887446802915
},
"southwest" : {
"lat" : 2.991932519708498,
"lng" : 101.7860467197085
}
}
},
"place_id" : "ChIJcSMkCHjLzTERU6wXGzYy14I",
"types" : [ "route" ]
},
{
"address_components" : [
{
"long_name" : "Petronas Jalan Enggang",
"short_name" : "Petronas Jalan Enggang",
"types" : [ "point_of_interest", "establishment" ]
},
{
"long_name" : "Kajang",
"short_name" : "Kajang",
"types" : [ "sublocality_level_1", "sublocality", "political" ]
},
{
"long_name" : "Kajang",
"short_name" : "Kajang",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Selangor",
"short_name" : "Selangor",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Malaysia",
"short_name" : "MY",
"types" : [ "country", "political" ]
},
{
"long_name" : "43000",
"short_name" : "43000",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "Petronas Jalan Enggang, Kajang, 43000 Kajang, Selangor, Malaysia",
"geometry" : {
"location" : {
"lat" : 2.994144,
"lng" : 101.78781
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 2.995492980291502,
"lng" : 101.7891589802915
},
"southwest" : {
"lat" : 2.992795019708498,
"lng" : 101.7864610197085
}
}
},
"place_id" : "ChIJN5uCE3jLzTERpHUSvJFj5To",
"types" : [
"bus_station",
"transit_station",
"point_of_interest",
"establishment"
]
},
{
"address_components" : [
{
"long_name" : "Kajang",
"short_name" : "Kajang",
"types" : [ "sublocality_level_1", "sublocality", "political" ]
},
{
"long_name" : "Kajang",
"short_name" : "Kajang",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Kajang",
"short_name" : "Kajang",
"types" : [ "administrative_area_level_4", "political" ]
},
{
"long_name" : "Hulu Langat",
"short_name" : "Hulu Langat",
"types" : [ "administrative_area_level_3", "political" ]
},
{
"long_name" : "Selangor",
"short_name" : "Selangor",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Malaysia",
"short_name" : "MY",
"types" : [ "country", "political" ]
},
{
"long_name" : "43000",
"short_name" : "43000",
"types" : [ "postal_code" ]
}
],
"formatted_address" : "Kajang, 43000 Kajang, Selangor, Malaysia",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 2.9980711,
"lng" : 101.79819
},
"southwest" : {
"lat" : 2.986342,
"lng" : 101.7843368
}
},
"location" : {
"lat" : 2.9919972,
"lng" : 101.7908387
},
"location_type" : "APPROXIMATE",
"viewport" : {
"northeast" : {
"lat" : 2.9980711,
"lng" : 101.79819
},
"southwest" : {
"lat" : 2.986342,
"lng" : 101.7843368
}
}
},
"place_id" : "ChIJsfCmp3jLzTERJuiZjvHEHSA",
"types" : [ "sublocality_level_1", "sublocality", "political" ]
},
{
"address_components" : [
{
"long_name" : "Kajang",
"short_name" : "Kajang",
"types" : [ "locality", "political" ]
},
{
"long_name" : "Hulu Langat",
"short_name" : "Hulu Langat",
"types" : [ "administrative_area_level_3", "political" ]
},
{
"long_name" : "Selangor",
"short_name" : "Selangor",
"types" : [ "administrative_area_level_1", "political" ]
},
{
"long_name" : "Malaysia",
"short_name" : "MY",
"types" : [ "country", "political" ]
}
],
"formatted_address" : "Kajang, Selangor, Malaysia",
"geometry" : {
"bounds" : {
"northeast" : {
"lat" : 3.069515,
"lng" : 101.8336388
},
"southwest" : {
"lat" : 2.8684469,
"lng" : 101.69742
}
},
"location" : {
"lat" : 2.993518,
"lng" : 101.7874058
},
Run Code Online (Sandbox Code Playgroud)
MY PHP函数获取给定的经纬度的反向地理编码
public function get_location()
{
$this->location = $param;
$location = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?latlng=2.993518,101.7874058&sensor=true');
return $location;
}
Run Code Online (Sandbox Code Playgroud)
我试图这样解析:
$search = new search();
$data = $search->get_location();//caries the JSON data
$return['json']= json_encode($data);
$data = json_decode($return['json'], true);
Run Code Online (Sandbox Code Playgroud)
但是如何定位long_name,格式化地址等?
以下示例演示了如何在PHP中解析和访问地址解析服务的结果long_name和short_name属性:
$json = file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?latlng=2.993518,101.7874058&sensor=true');
$data = json_decode($json, true);
foreach ($data['results'] as $item) {
if( !empty( $item['address_components'] ) ){
$longName = $item['address_components'][0]['long_name'];
$shortName = $item['address_components'][0]['short_name'];
print_r('Long Name:' . $longName);
print_r(' Short Name:' . $shortName);
}
}
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
2846 次 |
| 最近记录: |