/** * Serialize geometries into a WKT string. * * @param Geometry $geometry * @param string $return_type Should be either 'string' or 'array' * * @return string Does a reverse geocode of the geometry */ public function write(Geometry $geometry, $return_type = 'string') { $centroid = $geometry->getCentroid(); $lat = $centroid->getY(); $lon = $centroid->getX(); $url = "http://maps.googleapis.com/maps/api/geocode/json"; $url .= '?latlng=' . $lat . ',' . $lon; $url .= '&sensor=false'; $this->result = json_decode(@file_get_contents($url)); if ($this->result->status == 'OK') { if ($return_type == 'string') { return $this->result->results[0]->formatted_address; } if ($return_type == 'array') { return $this->result->results[0]->address_components; } } }
/** * Serialize geometries into a WKT string. * * @param Geometry $geometry * @param string $return_type Should be either 'string' or 'array' * * @return string Does a reverse geocode of the geometry */ public function write(Geometry $geometry, $return_type = 'string') { $centroid = $geometry->getCentroid(); $lat = $centroid->getY(); $lon = $centroid->getX(); $url = "http://maps.googleapis.com/maps/api/geocode/json"; $url .= '?latlng=' . $lat . ',' . $lon; $url .= '&sensor=false'; $this->result = json_decode(@file_get_contents($url)); if ($this->result->status == 'OK') { if ($return_type == 'string') { return $this->result->results[0]->formatted_address; } if ($return_type == 'array') { return $this->result->results[0]->address_components; } } elseif ($this->result->status == 'ZERO_RESULTS') { if ($return_type == 'string') { return ''; } if ($return_type == 'array') { return $this->result->results; } } else { if ($this->result->status) { throw new Exception('Error in Google Reverse Geocoder: ' . $this->result->status); } else { throw new Exception('Unknown error in Google Reverse Geocoder'); } return FALSE; } }
/** * Serialize geometries into a WKT string. * * @param Geometry $geometry * @param string $return_type Should be either 'string' or 'array' * * @return string Does a reverse geocode of the geometry */ public function write(Geometry $geometry, $return_type = 'string', $lang = '') { $centroid = $geometry->getCentroid(); $lat = $centroid->getY(); $lon = $centroid->getX(); $url = "https://maps.googleapis.com/maps/api/geocode/json"; $url .= '?latlng=' . $lat . ',' . $lon; if ($lang) { $url .= '&language=' . $lang; } $url .= '&sensor=false&key=AIzaSyC-MmVaJu3PMimL9iYQDzPaYFJ9ShvGcDI'; $this->result = json_decode(@file_get_contents($url)); if ($this->result->status == 'OK') { if ($return_type == 'string') { return $this->result->results[0]->formatted_address; } if ($return_type == 'array') { return $this->result->results[0]->address_components; } } else { if ($this->result->status) { throw new Exception('Error in Google Reverse Geocoder: ' . $this->result->status); } else { throw new Exception('Unknown error in Google Reverse Geocoder'); } return FALSE; } }