]> dev.renevier.net Git - syj.git/blob - application/controllers/NominatimController.php
search a place with nominatim
[syj.git] / application / controllers / NominatimController.php
1 <?php
2 /*  This file is part of Syj, Copyright (c) 2010 Arnaud Renevier,
3     and is published under the AGPL license. */
4
5 class NominatimController extends Zend_Controller_Action
6 {
7
8     public function indexAction() {
9         $search = $this->getRequest()->getQuery('nominatim-search');
10         if (!isset($search)) {
11             throw new Syj_Exception_Request();
12         }
13
14         $serverUrl = rtrim($this->view->serverUrl(), '/');
15         $baseUrl = trim($this->view->baseUrl(), '/');
16         $href = $serverUrl . '/' . ($baseUrl ? ($baseUrl . '/'): '');
17
18         $client = new Zend_Http_Client('http://nominatim.openstreetmap.org/search', array(
19                         'useragent' => ('Zend_Http_Client for ' . $href)));
20         $client->setParameterGet(array('q' => $search,
21                                        'format' => 'json',
22                                        'email' => Zend_Controller_Front::getInstance()->getParam('webmasterEmail')));
23
24         $response = $client->request();
25         $data = json_decode($response->getBody());
26         if (!$data) {
27             $data = array();
28         }
29         $this->_helper->SyjApi->setBodyJson($data)->setCode($response->getStatus());
30     }
31 }