您好我想通过latitude
longitude
和address
值
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 .= "®ion=".$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)
,
为什么这个,我需要使用的地址格式是什么,请帮忙。提前谢谢.........
答案 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" 试试这个适合我的那个