пятница, 10 сентября 2010 г.

Yii. Использование Google Map API для поиска координат точки по ее адресу.

Простой пример метода модели фреймворка Yii, для пооиска координат точки на карте по ее адресу. Используется Google Map API для поиска и CURL для обработки его результатов.

Одно маленькое замечание: частой проблемой при использовании поискового API - нессответствие кодировок. Рекомендую адрес который передается в метод searchPoint передавать посредством POST, так как в этом случае не будет бится кодировка (через GET бывают такие проблемы).

public function searchPoint($address=''){
 $key = Yii::app()->params['gmap'];
 $address = urldecode($address);

 $url = "http://maps.google.com/maps/geo?q={$address}&output=json&key={$key}";

 $ch = curl_init();

 curl_setopt($ch, CURLOPT_URL, $url);
 curl_setopt($ch, CURLOPT_HEADER,0);
 curl_setopt($ch, CURLOPT_USERAGENT, $_SERVER["HTTP_USER_AGENT"]);
 curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
 curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);

 $data = curl_exec($ch);
 curl_close($ch);

 $data = CJSON::decode($data);

 $coord = $data['Placemark'][0]['Point']['coordinates'];
 return array('lng'=>$coord[0],'lat'=>$coord[1]);
}

Комментариев нет:

Отправить комментарий