无法使用谷歌地图获取纬度,经度,get_lat_long_from_address

时间:2012-05-09 07:30:25

标签: php codeigniter google-maps google-maps-api-3

您好我想通过latitude

获取longitudeaddress
function get_lat_long_from_address($address)
{

    $lat = 0;
    $lng = 0;

    if ($this->geocodeCaching) { // if caching of geocode requests is activated

        $CI =& get_instance();
        $CI->load->database(); 
        $CI->db->select("latitude,longitude");
        $CI->db->from("geocoding");
        $CI->db->where("address", trim(strtolower($address)));
        $query = $CI->db->get();

        if ($query->num_rows()>0) {
            $row = $query->row();
            return array($row->latitude, $row->longitude);
        }

    }

    $data_location = "http://maps.google.com/maps/api/geocode/json?address=".str_replace(" ", "+", $address)."&sensor=".$this->sensor;
    if ($this->region!="" && strlen($this->region)==2) { $data_location .= "&region=".$this->region; }
    $data = file_get_contents($data_location);

    $data = json_decode($data);

    if ($data->status=="OK") {

        $lat = $data->results[0]->geometry->location->lat;
        $lng = $data->results[0]->geometry->location->lng;

        if ($this->geocodeCaching) { // if we to need to cache this result
            $data = array(
                "address"=>trim(strtolower($address)),
                "latitude"=>$lat,
                "longitude"=>$lng
            );
            $CI->db->insert("geocoding", $data);
        }

    }

    return array($lat, $lng);

}

事情是我传递给函数的任何地址,它只返回纬度和经度(0,0)

我通过了

这样的地址
$address = "colombo,sri lanka"; 
$address = "colombo,LK";
$address = "newyork,United states";
$address = "1/35 amunugama gunnena,kandy,sri lanka";

但每次返回(0,0)

为什么这个,我需要使用的地址格式是什么,请帮忙。提前谢谢.........

2 个答案:

答案 0 :(得分:2)

我不确定您获得的价值和网址是什么,所以我尝试在浏览器中输入您的输入网址

http://maps.google.com/maps/api/geocode/json?address=colombo,sri+lanka&sensor=true

给出了正确的结果。

确保您的网址正确创建。

要查看调试的输出,您可以打印    print_r($ data);

此建议也将CodeIgniter放入您的标签列表中。

答案 1 :(得分:0)

您的地址格式应该是这样的" 13 Telfer Court Rowville VIC 3178 Australia" 试试这个适合我的那个