/** * Get lat lon by address * @author Oleg D. */ function getLatLon($address, $updateAddress = 0) { $addressString = $city = $state = $country = ''; if (!empty($address['address'])) { $addressString = $address['address'] . ' ' . $address['address2'] . ' ' . $address['address3']; if (!empty($address['city'])) { $city = $address['city']; } if (!empty($address['Country']['name'])) { $country = $address['Country']['name']; } elseif (!empty($address['country_name'])) { $country = $address['country_name']; } if (!empty($address['Provincestate']['name'])) { $state = $address['Provincestate']['name']; } elseif (!empty($address['state_name'])) { $state = $address['state_name']; } App::import('Vendor', 'GoogleMapAPI', array('file' => 'class.GoogleMapAPI.php')); $map = new GoogleMapAPI(); $map->setAPIKey(GOOGLE_MAP_KEY); $latLon = $map->getCoordsByAddress(trim($addressString), $city, $state, $country); if ($updateAddress && !empty($address['id']) && !empty($latLon['lat']) && !empty($latLon['lon'])) { $Address = new Address(); $Address->save(array('id' => $address['id'], 'latitude' => $latLon['lat'], 'longitude' => $latLon['lon'])); } return $latLon; } else { return false; } }
/** * Get lat lon by address * * modified by skinny....$state can be array('id'=>$id) and $country can be array('id'=>$id) * * @author Oleg D. */ function getLatLon($address = null, $city = null, $state = null, $country = null) { if (is_array($state)) { $stateid = $state['id']; $provinceState = $this->Provincestate->find('first', array('id' => $stateid)); $state = $provinceState['Provincestate']['name']; } if (is_array($country)) { $countryid = $country['id']; $country = $this->Country->find('first', array('id' => $countryid)); $country = $country['Country']['name']; } App::import('Vendor', 'GoogleMapAPI', array('file' => 'class.GoogleMapAPI.php')); $map = new GoogleMapAPI(); $map->setAPIKey(GOOGLE_MAP_KEY); return $map->getCoordsByAddress($address, $city, $state, $country); }
/** * Find latitude and longitude for available address of Venues and save to Address table * @author Povstyanoy */ function generateCoordinates($password = "") { if ($password != "novohudonosor") { exit("You don't have rights to run this script"); } $this->autoRender = false; $this->Venue->Address->recursive = 0; $addresses = $this->Venue->Address->find('all', array('conditions' => array('latitude' => null, 'longitude' => null, 'model' => 'Venue'))); //print_r($addresses); //die; App::import('Vendor', 'GoogleMapAPI', array('file' => 'class.GoogleMapAPI.php')); $map = new GoogleMapAPI(); $map->setAPIKey(GOOGLE_API_KEY); foreach ($addresses as $index => $address) { $geocode = $map->getCoordsByAddress($address['Address']['address'], $address['Address']['city'], $address['Provincestate']['name'], $address['Country']['name']); $result = false; if (!empty($geocode)) { $result = $this->Venue->Address->updateAll(array('latitude' => "'" . $geocode['lat'] . "'", 'longitude' => "'" . $geocode['lon'] . "'"), array("Address.id = {$address['Address']['id']}")); echo $index; print_r($geocode); var_dump($result); echo "<br />"; } } }