Esempio n. 1
0
 public function getLatitude()
 {
     if (isset($this->geocoderResult) === false) {
         $this->geocodeAddress();
     }
     return $this->geocoderResult->getLatitude();
 }
 /**
  * getAngle: Get a bounding box angle
  * Determining two angles (southWest & northEast) is sufficient to create a boundinx box
  *
  * @link http://richardpeacock.com/blog/2011/11/draw-box-around-coordinate-google-maps-based-miles-or-kilometers
  * @link http://www.sitepoint.com/forums/showthread.php?656315-adding-distance-gps-coordinates-get-bounding-box
  * @param  ResultInterface $result
  * @param  integer         $bearing
  * @param  float           $distance
  * @param  string          $distance_unit
  * @return Geocoded        A bounding box Angle
  */
 public static function getAngle(Geocoded $result, $bearing, $distance, $distance_unit = "km")
 {
     $geocoded = new Geocoded();
     if ($distance_unit == "m") {
         // Distance is in miles.
         $radius = 3963.1676;
     } else {
         // distance is in km.
         $radius = 6378.1;
     }
     $tuple = array();
     // New latitude in degrees.
     $tuple['latitude'] = rad2deg(asin(sin(deg2rad($result->getLatitude())) * cos($distance / $radius) + cos(deg2rad($result->getLatitude())) * sin($distance / $radius) * cos(deg2rad($bearing))));
     // New longitude in degrees.
     $tuple['longitude'] = rad2deg(deg2rad($result->getLongitude()) + atan2(sin(deg2rad($bearing)) * sin($distance / $radius) * cos(deg2rad($result->getLatitude())), cos($distance / $radius) - sin(deg2rad($result->getLatitude())) * sin(deg2rad($tuple['latitude']))));
     $geocoded->fromArray($tuple);
     return $geocoded;
 }