1

こんにちは私は値を取得しよう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)

これはなぜですか、私が使用する必要があるアドレス形式は何ですか、助けてください。前もって感謝します .........

4

2 に答える 2

2

あなたが正確に取得している値と URL がわからないので、入力 URL を使用してブラウザーで試してみました

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

正しい結果が得られます。

URL が正しく作成されていることを確認してください。

デバッグ用の出力を表示するには、print_r ($data); のように出力できます。

また、CodeIgniter をタグリストに入れることも提案されています。

于 2012-05-09T07:42:09.900 に答える
0

住所の形式は「13 Telfer Court Rowville VIC 3178 Australia」のようにする必要があります。

于 2015-05-16T01:48:30.777 に答える