/** * Add a geocoder result * * @todo Parse result to update geocoded properties * @param Ivory\GoogleMapBundle\Model\Services\Result\GeocoderResult $result */ public function addResult(GeocoderResult $result) { if (is_null($this->latitude)) { $this->latitude = $result->getGeometry()->getLocation()->getLatitude(); $this->longitude = $result->getGeometry()->getLocation()->getLongitude(); foreach ($result->getAddressComponents() as $addressComponent) { foreach ($addressComponent->getTypes() as $type) { switch ($type) { case 'postal_code': $this->zipcode = $addressComponent->getLongName(); break; case 'locality': $this->city = $addressComponent->getLongName(); break; case 'administrative_area_level_1': $this->region = $addressComponent->getLongName(); break; case 'country': $this->country = $addressComponent->getLongName(); break; default: break; } } } } $this->results[] = $result; }
/** * Checks the geometry getter & setter */ public function testGeometry() { $viewportTest = new Bound(); $viewportTest->setSouthWest(-1, -2, true); $viewportTest->setNorthEast(2, 1, true); $boundTest = new Bound(); $boundTest->setSouthWest(-5, -4, true); $boundTest->setNorthEast(4, 5, true); self::$geocoderResult->setGeometry(new GeocoderGeometry(new Coordinate(1, 2, true), GeocoderLocationType::APPROXIMATE, $viewportTest, $boundTest)); $this->assertEquals(self::$geocoderResult->getGeometry()->getLocation()->getLatitude(), 1); $this->assertEquals(self::$geocoderResult->getGeometry()->getLocation()->getLongitude(), 2); $this->assertTrue(self::$geocoderResult->getGeometry()->getLocation()->isNoWrap()); $this->assertEquals(self::$geocoderResult->getGeometry()->getLocationType(), GeocoderLocationType::APPROXIMATE); $this->assertEquals(self::$geocoderResult->getGeometry()->getViewport()->getSouthWest()->getLatitude(), -1); $this->assertEquals(self::$geocoderResult->getGeometry()->getViewport()->getSouthWest()->getLongitude(), -2); $this->assertTrue(self::$geocoderResult->getGeometry()->getViewport()->getSouthWest()->isNoWrap()); $this->assertEquals(self::$geocoderResult->getGeometry()->getViewport()->getNorthEast()->getLatitude(), 2); $this->assertEquals(self::$geocoderResult->getGeometry()->getViewport()->getNorthEast()->getLongitude(), 1); $this->assertTrue(self::$geocoderResult->getGeometry()->getViewport()->getNorthEast()->isNoWrap()); $this->assertEquals(self::$geocoderResult->getGeometry()->getBound()->getSouthWest()->getLatitude(), -5); $this->assertEquals(self::$geocoderResult->getGeometry()->getBound()->getSouthWest()->getLongitude(), -4); $this->assertTrue(self::$geocoderResult->getGeometry()->getBound()->getSouthWest()->isNoWrap()); $this->assertEquals(self::$geocoderResult->getGeometry()->getBound()->getNorthEast()->getLatitude(), 4); $this->assertEquals(self::$geocoderResult->getGeometry()->getBound()->getNorthEast()->getLongitude(), 5); $this->assertTrue(self::$geocoderResult->getGeometry()->getBound()->getNorthEast()->isNoWrap()); }