/** * @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); }