/** * Checks the bound getter & setter */ public function testBound() { $boundTest = new Bound(); $boundTest->setSouthWest(new Coordinate(-1, -1, true)); $boundTest->setNorthEast(new Coordinate(1, 1, true)); self::$object->setBound($boundTest); $this->assertEquals(self::$object->getBound()->getSouthWest()->getLatitude(), -1); $this->assertEquals(self::$object->getBound()->getSouthWest()->getLongitude(), -1); $this->assertTrue(self::$object->getBound()->getSouthWest()->isNoWrap()); $this->assertEquals(self::$object->getBound()->getNorthEast()->getLatitude(), 1); $this->assertEquals(self::$object->getBound()->getNorthEast()->getLongitude(), 1); $this->assertTrue(self::$object->getBound()->getNorthEast()->isNoWrap()); $southWestTest = new Coordinate(-2.1, -2.1, false); $northEastTest = new Coordinate(2.1, 2.1, false); self::$object->setBound($southWestTest, $northEastTest); $this->assertEquals(self::$object->getBound()->getSouthWest()->getLatitude(), -2.1); $this->assertEquals(self::$object->getBound()->getSouthWest()->getLongitude(), -2.1); $this->assertFalse(self::$object->getBound()->getSouthWest()->isNoWrap()); $this->assertEquals(self::$object->getBound()->getNorthEast()->getLatitude(), 2.1); $this->assertEquals(self::$object->getBound()->getNorthEast()->getLongitude(), 2.1); $this->assertFalse(self::$object->getBound()->getNorthEast()->isNoWrap()); self::$object->setBound(-3.1, -3.1, 3.1, 3.1, true, false); $this->assertEquals(self::$object->getBound()->getSouthWest()->getLatitude(), -3.1); $this->assertEquals(self::$object->getBound()->getSouthWest()->getLongitude(), -3.1); $this->assertTrue(self::$object->getBound()->getSouthWest()->isNoWrap()); $this->assertEquals(self::$object->getBound()->getNorthEast()->getLatitude(), 3.1); $this->assertEquals(self::$object->getBound()->getNorthEast()->getLongitude(), 3.1); $this->assertFalse(self::$object->getBound()->getNorthEast()->isNoWrap()); $boundTest = new Bound(); $this->setExpectedException('InvalidArgumentException'); self::$object->setBound($boundTest); $this->setExpectedException('InvalidArgumentException'); self::$object->setBound('foo'); }
/** * {@inheritdoc} */ public function setUp() { $boundTest = new Bound(); $boundTest->setSouthWest(-1.1, -2.1, true); $boundTest->setNorthEast(1.1, 2.1, true); $overviewPolyline = new EncodedPolyline('value'); self::$directionsRoute = new DirectionsRoute($boundTest, 'copyrights', array(), $overviewPolyline, 'summary', array(), array()); }
/** * Checks the routes getter & setter */ public function testRoutes() { $this->assertEquals(count(self::$directionsResponse->getRoutes()), 0); $boundTest = new Bound(); $boundTest->setSouthWest(-1.1, -2.1, true); $boundTest->setNorthEast(1.1, 2.1, true); $overviewPolyline = new EncodedPolyline('value'); $directionsRouteTest = new DirectionsRoute($boundTest, 'copyrights', array(), $overviewPolyline, 'summary', array(), array()); self::$directionsResponse->addRoute($directionsRouteTest); $this->assertEquals(count(self::$directionsResponse->getRoutes()), 1); }
/** * Checks the render method */ public function testRender() { $mapTest = new Map(); $rectangleTest = new Rectangle(); $boundTest = new Bound(); $boundTest->setSouthWest(new Coordinate(-1.1, -2.1, true)); $boundTest->setNorthEast(new Coordinate(1.1, 2.1, true)); $rectangleTest->setBound($boundTest); $this->assertEquals(self::$rectangleHelper->render($rectangleTest, $mapTest), 'var ' . $rectangleTest->getBound()->getJavascriptVariable() . ' = new google.maps.LatLngBounds(new google.maps.LatLng(-1.1, -2.1, true), new google.maps.LatLng(1.1, 2.1, true));' . PHP_EOL . 'var ' . $rectangleTest->getJavascriptVariable() . ' = new google.maps.Rectangle({"map":' . $mapTest->getJavascriptVariable() . ',"bounds":' . $rectangleTest->getBound()->getJavascriptVariable() . '});' . PHP_EOL); $rectangleTest->setOptions(array('option1' => 'value1', 'option2' => 'value2')); $this->assertEquals(self::$rectangleHelper->render($rectangleTest, $mapTest), 'var ' . $rectangleTest->getBound()->getJavascriptVariable() . ' = new google.maps.LatLngBounds(new google.maps.LatLng(-1.1, -2.1, true), new google.maps.LatLng(1.1, 2.1, true));' . PHP_EOL . 'var ' . $rectangleTest->getJavascriptVariable() . ' = new google.maps.Rectangle({"map":' . $mapTest->getJavascriptVariable() . ',"bounds":' . $rectangleTest->getBound()->getJavascriptVariable() . ',"option1":"value1","option2":"value2"});' . PHP_EOL); }
/** * Checks the results getter & setter */ public function testResults() { $addressComponentsTest = array(new GeocoderAddressComponent('long_name_1', 'short_name_1', array('type_1', 'type_2')), new GeocoderAddressComponent('long_name_2', 'short_name_2', array('type_3', 'type_4'))); $viewportTest = new Bound(); $viewportTest->setSouthWest(-1.1, -2.1, true); $viewportTest->setNorthEast(2.1, 1.1, true); $boundTest = new Bound(); $boundTest->setSouthWest(-5.1, -4.1, true); $boundTest->setNorthEast(4.1, 5.1, true); $geometryTest = new GeocoderGeometry(new Coordinate(1.2, 2.1, true), GeocoderLocationType::APPROXIMATE, $viewportTest, $boundTest); self::$geocoderResponse->addResult(new GeocoderResult($addressComponentsTest, 'address', $geometryTest, array('type_1', 'type_2'), true)); $this->assertEquals(count(self::$geocoderResponse->getResults()), 2); }
/** * Checks the render extends methos */ public function testRenderExtends() { $boundTest = new Bound(); $circleTest = new Overlays\Circle(); $boundTest->extend($circleTest); $groundOverlayTest = new Overlays\GroundOverlay(); $boundTest->extend($groundOverlayTest); $infoWindowTest = new Overlays\InfoWindow(); $boundTest->extend($infoWindowTest); $markerTest = new Overlays\Marker(); $boundTest->extend($markerTest); $polygonTest = new Overlays\Polygon(); $boundTest->extend($polygonTest); $polylineTest = new Overlays\Polyline(); $boundTest->extend($polylineTest); $rectangleTest = new Overlays\Rectangle(); $boundTest->extend($rectangleTest); $this->assertEquals(self::$boundHelper->renderExtends($boundTest), $boundTest->getJavascriptVariable() . '.union(' . $circleTest->getJavascriptVariable() . '.getBounds());' . PHP_EOL . $boundTest->getJavascriptVariable() . '.union(' . $groundOverlayTest->getBound()->getJavascriptVariable() . ');' . PHP_EOL . $boundTest->getJavascriptVariable() . '.extend(' . $infoWindowTest->getJavascriptVariable() . '.getPosition());' . PHP_EOL . $boundTest->getJavascriptVariable() . '.extend(' . $markerTest->getJavascriptVariable() . '.getPosition());' . PHP_EOL . $polygonTest->getJavascriptVariable() . '.getPath().forEach(function(element){' . $boundTest->getJavascriptVariable() . '.extend(element)});' . PHP_EOL . $polylineTest->getJavascriptVariable() . '.getPath().forEach(function(element){' . $boundTest->getJavascriptVariable() . '.extend(element)});' . PHP_EOL . $boundTest->getJavascriptVariable() . '.union(' . $rectangleTest->getBound()->getJavascriptVariable() . ');' . PHP_EOL); }
/** * Checks the bound getter & setter */ public function testBound() { $southWestCoordinateTest = new Coordinate(-1, -1, true); $northEastCoordinateTest = new Coordinate(1, 1, true); $boundTest = new Bound(); $boundTest->setSouthWest($southWestCoordinateTest); $boundTest->setNorthEast($northEastCoordinateTest); self::$geocoderRequest->setBound($boundTest); $this->assertTrue(self::$geocoderRequest->hasBound()); $this->assertEquals(self::$geocoderRequest->getBound()->getSouthWest()->getLatitude(), -1); $this->assertEquals(self::$geocoderRequest->getBound()->getSouthWest()->getLongitude(), -1); $this->assertTrue(self::$geocoderRequest->getBound()->getSouthWest()->isNoWrap()); $this->assertEquals(self::$geocoderRequest->getBound()->getNorthEast()->getLatitude(), 1); $this->assertEquals(self::$geocoderRequest->getBound()->getNorthEast()->getLongitude(), 1); $this->assertTrue(self::$geocoderRequest->getBound()->getNorthEast()->isNoWrap()); self::$geocoderRequest->setBound($southWestCoordinateTest, $northEastCoordinateTest); $this->assertTrue(self::$geocoderRequest->hasBound()); $this->assertEquals(self::$geocoderRequest->getBound()->getSouthWest()->getLatitude(), -1); $this->assertEquals(self::$geocoderRequest->getBound()->getSouthWest()->getLongitude(), -1); $this->assertTrue(self::$geocoderRequest->getBound()->getSouthWest()->isNoWrap()); $this->assertEquals(self::$geocoderRequest->getBound()->getNorthEast()->getLatitude(), 1); $this->assertEquals(self::$geocoderRequest->getBound()->getNorthEast()->getLongitude(), 1); $this->assertTrue(self::$geocoderRequest->getBound()->getNorthEast()->isNoWrap()); self::$geocoderRequest->setBound(-2, -2, 2, 2, true, true); $this->assertTrue(self::$geocoderRequest->hasBound()); $this->assertEquals(self::$geocoderRequest->getBound()->getSouthWest()->getLatitude(), -2); $this->assertEquals(self::$geocoderRequest->getBound()->getSouthWest()->getLongitude(), -2); $this->assertTrue(self::$geocoderRequest->getBound()->getSouthWest()->isNoWrap()); $this->assertEquals(self::$geocoderRequest->getBound()->getNorthEast()->getLatitude(), 2); $this->assertEquals(self::$geocoderRequest->getBound()->getNorthEast()->getLongitude(), 2); $this->assertTrue(self::$geocoderRequest->getBound()->getNorthEast()->isNoWrap()); self::$geocoderRequest->setBound(null); $this->assertFalse(self::$geocoderRequest->hasBound()); $this->setExpectedException('InvalidArgumentException'); self::$geocoderRequest->setBound('foo'); }
/** * Renders the bound's extend of a marker * * @param Ivory\GoogleMapBundle\Model\Base\Bound $bound * @return string HTML output */ public function renderExtends(Bound $bound) { $html = array(); foreach ($bound->getExtends() as $extend) { if ($extend instanceof Overlays\Marker || $extend instanceof Overlays\InfoWindow) { $html[] = sprintf('%s.extend(%s.getPosition());' . PHP_EOL, $bound->getJavascriptVariable(), $extend->getJavascriptVariable()); } else { if ($extend instanceof Overlays\Polyline || $extend instanceof Overlays\EncodedPolyline || $extend instanceof Overlays\Polygon) { $html[] = sprintf('%s.getPath().forEach(function(element){%s.extend(element)});' . PHP_EOL, $extend->getJavascriptVariable(), $bound->getJavascriptVariable()); } else { if ($extend instanceof Overlays\Rectangle || $extend instanceof Overlays\GroundOverlay) { $html[] = sprintf('%s.union(%s);' . PHP_EOL, $bound->getJavascriptVariable(), $extend->getBound()->getJavascriptVariable()); } else { if ($extend instanceof Overlays\Circle) { $html[] = sprintf('%s.union(%s.getBounds());' . PHP_EOL, $bound->getJavascriptVariable(), $extend->getJavascriptVariable()); } } } } } return implode('', $html); }
/** * Checks the render bound method */ public function testRenderBound() { $mapTest = new Model\Map(); $boundTest = new Base\Bound(); $boundTest->setSouthWest(-1.1, 2.1, true); $boundTest->setNorthEast(1.1, 2.1, true); $mapTest->setBound($boundTest); $this->assertEquals(self::$mapHelper->renderBound($mapTest), 'var ' . $mapTest->getBound()->getJavascriptVariable() . ' = new google.maps.LatLngBounds(new google.maps.LatLng(-1.1, 2.1, true), new google.maps.LatLng(1.1, 2.1, true));' . PHP_EOL . $mapTest->getJavascriptVariable() . '.fitBounds(' . $mapTest->getBound()->getJavascriptVariable() . ');' . PHP_EOL); }
/** * Build geocoder geometry with the given normalized geocoding geometry given * * @param \stdClass $geocoderGeometry * @return Ivory\GoogleMapBundle\Model\Services\Geocoding\Result\GeocoderGeometry */ protected function buildGeocoderGeometry(\stdClass $geocoderGeometry) { $location = new Coordinate($geocoderGeometry->location->lat, $geocoderGeometry->location->lng); $locationType = $geocoderGeometry->location_type; $viewport = new Bound(); $viewport->setNorthEast($geocoderGeometry->viewport->northeast->lat, $geocoderGeometry->viewport->northeast->lng); $viewport->setSouthWest($geocoderGeometry->viewport->southwest->lat, $geocoderGeometry->viewport->southwest->lng); if (isset($geocoderGeometry->bounds)) { $bound = new Bound(); $bound->setNorthEast($geocoderGeometry->bounds->northeast->lat, $geocoderGeometry->bounds->northeast->lng); $bound->setSouthWest($geocoderGeometry->bounds->southwest->lat, $geocoderGeometry->bounds->southwest->lng); } else { $bound = null; } return new Result\GeocoderGeometry($location, $locationType, $viewport, $bound); }
/** * Checks the bound getter & setter */ public function testBound() { $boundTest = new Bound(); $boundTest->setSouthWest(-4.1, -8.1, false); $boundTest->setNorthEast(7.1, 3.1, true); self::$geocoderGeometry->setBound($boundTest); $this->assertEquals(self::$geocoderGeometry->getBound()->getSouthWest()->getLatitude(), -4.1); $this->assertEquals(self::$geocoderGeometry->getBound()->getSouthWest()->getLongitude(), -8.1); $this->assertFalse(self::$geocoderGeometry->getBound()->getSouthWest()->isNoWrap()); $this->assertEquals(self::$geocoderGeometry->getBound()->getNorthEast()->getLatitude(), 7.1); $this->assertEquals(self::$geocoderGeometry->getBound()->getNorthEast()->getLongitude(), 3.1); $this->assertTrue(self::$geocoderGeometry->getBound()->getNorthEast()->isNoWrap()); }
/** * 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()); }
/** * Build directions route with the normalized directions API route given * * @param stdClass $directionsRoute * @return Ivory\GoogleMapBundle\Model\Services\Directions\DirectionsRoute */ protected function buildDirectionsRoute(\stdClass $directionsRoute) { $bound = new Bound(); $bound->setNorthEast($directionsRoute->bounds->northeast->lat, $directionsRoute->bounds->northeast->lng); $bound->setSouthWest($directionsRoute->bounds->southwest->lat, $directionsRoute->bounds->southwest->lng); $copyrights = $directionsRoute->copyrights; $directionsLegs = $this->buildDirectionsLegs($directionsRoute->legs); $overviewPolyline = new EncodedPolyline($directionsRoute->overview_polyline->points); $summary = $directionsRoute->summary; $warnings = $directionsRoute->warnings; $waypointOrder = $directionsRoute->waypoint_order; return new DirectionsRoute($bound, $copyrights, $directionsLegs, $overviewPolyline, $summary, $warnings, $waypointOrder); }
/** * Create a bound */ public function __construct() { parent::__construct(); }