<?php require_once "./../../../../../wp-load.php"; if (isset($_GET['ref'])) { switch ($_GET['ref']) { // Format data to be readable by jQuery UI case 'filter': $google_data = estetico_get_address_data_from_google($_GET['term']); $data = array(); foreach ($google_data->results as $result) { $address_components = array(); foreach ($result->address_components as $component) { $address_components[] = $component->long_name; } $data[] = array('id' => join(', ', $address_components), 'value' => join(', ', $address_components), 'label' => join(', ', $address_components), 'geometry' => $result->geometry); } break; } } else { $data = estetico_get_address_data_from_google($_GET['address']); } header("Content-Type: application/json; encoding=utf-8"); echo json_encode($data); exit;
/** * Use Google Maps API to find location lat/lng * * @param $address string - An address to look for * @param $cache_result boolean - Cache results for next call */ function estetico_get_latlng_by_address($address, $cache_result = false) { static $latlng = array(); $address_md5 = md5($address); if (isset($latlng[$address_md5])) { return $latlng[$address_md5]; } $data = estetico_get_address_data_from_google($address); if ($data === false) { return false; } $return = $data->results[0]->geometry->location; if ($cache_result) { $latlng[$address_md5] = $return; } return $return; }