如何使用json api将Lat Long转换为php中的地址?

时间:2017-03-14 05:13:16

标签: php mysql json file-get-contents geocode

  

这是我的代码,用于动态地获取特定纬度的地址   从db.If我使用这个静态值它工作正常。但如果我使用   $ latlong这个变量来获取动态值。它显示错误。   什么是解决方案。请帮我一样。

注意:未定义的偏移量:第21行的C:\ xampp \ htdocs \ demo_calLatLong \ calLatLong.php中的0 注意:尝试在第21行的C:\ xampp \ htdocs \ demo_calLatLong \ calLatLong.php中获取非对象的属性

<table class="table table-bordered">
        <thead>
            <tr>         
              <th>Client Name</th>                                            
            </tr>
        </thead>
        <?php 
            include 'db.php';
            $sql = 'SELECT  *  FROM `location`';            
            $travel = mysqli_query($conn,$sql);     
        while ($row = mysqli_fetch_array($travel)) 
        {?>         
        <tbody>
            <tr class="active">
            <?php
               $latlong = $row[1].','.$row[2];
               $geocode=json_decode(file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?latlng=19.0978,22.8972&sensor=false',true));            
            ?>  
            <td><?php echo $geocode->results[0]->formatted_address;?></td>                                
            </tr>                               
        </tbody>
    <?php }?>
    </table>

1 个答案:

答案 0 :(得分:0)

您尝试访问的网址不是文件,而是使用CURL来直接访问文件。

替换

        <?php
           $latlong = $row[1].','.$row[2];
           $geocode=json_decode(file_get_contents('http://maps.googleapis.com/maps/api/geocode/json?latlng=19.0978,22.8972&sensor=false',true));            
        ?> 

<?php
    $url = "http://maps.googleapis.com/maps/api/geocode/json?latlng=$row[1],$row[2]&sensor=false";
    $ch = curl_init();
    curl_setopt($ch, CURLOPT_URL, $url);
    curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
    $output = curl_exec($ch);
    curl_close($ch);
    $geocode = json_decode($output);
?>