/**
  * @param $postalCode
  * @return GeographicPointInterface|null
  */
 public function getLatitudeAndLongitude($postalCode)
 {
     $postalCode = strtoupper(preg_replace('/\\s+/', '', $postalCode));
     $postalObj = $this->entityMgr->getRepository('NSDistanceBundle:PostalCode')->getByCode($postalCode);
     if (!$postalObj) {
         $url = sprintf('http://maps.googleapis.com/maps/api/geocode/json?components=postal_code:%s&sensor=false', $postalCode);
         $result = file_get_contents($url);
         $response = json_decode($result, true);
         if ($response['status'] != 'OK') {
             $lat = '';
             $long = '';
         } else {
             $geometry = $response['results'][0]['geometry'];
             $postalObj = new PostalCode();
             $postalObj->setLongitude($geometry['location']['lat']);
             $postalObj->setLatitude($geometry['location']['lng']);
             $postalObj->setCity($response['results'][0]['address_components'][2]['short_name']);
             $postalObj->setPostalCode($postalCode);
             $postalObj->setProvince(isset($response['results'][0]['address_components'][4]['short_name']) ? $response['results'][0]['address_components'][4]['short_name'] : "AB");
             $this->entityMgr->persist($postalObj);
         }
     }
     return $postalObj;
 }
 public function getPostalCodesObjects($multiple = false)
 {
     $source = new PostalCode();
     $source->setPostalCode('T3A5J4');
     $source->setLatitude(51.01772);
     $source->setLongitude(-114.196123);
     $dest = new PostalCode();
     $dest->setPostalCode('T2L0W2');
     $dest->setLatitude(51.08672);
     $dest->setLongitude(-114.113901);
     if ($multiple) {
         $mult = new PostalCode();
         $mult->setPostalCode('T3A0A1');
         $mult->setLatitude(51.082079);
         $mult->setLongitude(-114.142931);
         return array('T3A5J4' => $source, 'T2L0W2' => $dest, 'T3A0A1' => $mult);
     }
     return array('T3A5J4' => $source, 'T2L0W2' => $dest);
 }