$t->is($bounds_paris->getZoom(300),11,'Pour voir Paris sur une largeur/hauteur de 300 pix, il faut un zoom 11'); $t->diag('->createFromString Test'); $bounds_france = GMapBounds::createFromString('((42.32606244456202, -4.921875), (51.31688050404585, 8.26171875))'); $t->is($bounds_france->getZoom(300),5,'Pour voir la France sur une largeur/hauteur de 300 pix, il faut un zoom 5'); $t->diag('->getHomothety Test'); $bounds_france = GMapBounds::createFromString('((42.391008609205045, -4.833984375), (51.37178037591737, 8.349609375))'); $bounds_twice_france = $bounds_france->getHomothety(2); $t->is($bounds_twice_france->__toString(),'((37.9006227258, -11.42578125), (55.8621662593, 14.94140625))','France zoomed out once works'); $t->diag('->getZoomOut Test'); $bounds_twice_france = $bounds_france->getZoomOut(1); $t->is($bounds_twice_france->__toString(),'((37.9006227258, -11.42578125), (55.8621662593, 14.94140625))','France zoomed out once works'); $t->diag('->getBoundsContainingAllBounds Test'); $bounds = GMapBounds::createFromString('((48.7887996681, 2.23631017383), (48.9243326339, 2.44230382617))'); $big_bounds = GMapBounds::getBoundsContainingAllBounds(array($bounds)); $t->is($big_bounds->__toString(),$bounds->__toString(),'le bounds qui englobe un bounds cest le meme'); $big_bounds = GMapBounds::getBoundsContainingAllBounds(array($bounds,$bounds_france)); $t->is($big_bounds->__toString(),$bounds_france->__toString(),'le bounds qui contient paris et la france cest la france'); $t->diag('->getBoundsContainingCoords Test'); $coord_1 = new GMapCoord(48.7887996681, 2.23631017383); $coord_2 = new GMapCoord(48.9243326339, 2.44230382617); $coord_3 = new GMapCoord(48.8, 2.4); $bounds_12 = GMapBounds::getBoundsContainingCoords(array($coord_1,$coord_2)); $bounds_123 = GMapBounds::getBoundsContainingCoords(array($coord_1,$coord_2,$coord_3)); $t->is($bounds_12->__toString(),'((48.7887996681, 2.23631017383), (48.9243326339, 2.44230382617))', 'The minimal bounds containing the coords is the rectangle containing the two coords'); $t->is($bounds_123->__toString(),'((48.7887996681, 2.23631017383), (48.9243326339, 2.44230382617))', 'The minimal bounds containing the coords is the rectangle containing the three coords');
$lat = 0; $lng = 0; $zoom = 0; $pix = GMapCoord::fromLatToPix($lat, $zoom); $t->is($pix, 128, 'Latitude 0 is at the middle of the map for zoom 0'); $pix = GMapCoord::fromLngToPix($lng, $zoom); $t->is($pix, 128, 'Longitude 0 is at the middle of the map for zoom 0'); $lat = 0; $lng = -180; $zoom = 12; $pix = GMapCoord::fromLatToPix($lat, $zoom); $t->is($pix, 256 * pow(2, $zoom - 1), 'Latitude 0 is at the middle of the map whatever the zoom'); $pix = GMapCoord::fromLngToPix($lng, $zoom); $t->is($pix, 0, 'Longitude -180 is at the left of the map whathever the zoom'); $coord_paris = new GMapCoord(48.857939, 2.346611); $coord_le_mans = new GMapCoord(48.007381, 0.202131); $t->is(round(GMapCoord::distance($coord_le_mans, $coord_paris)), 257, 'Approximate distance between Le Mans and Paris is 257'); $t->is(round(GMapCoord::exactDistance($coord_le_mans, $coord_paris), 4), 184.5783, 'Approximate distance between Le Mans and Paris is 257'); $t->is(round(GMapCoord::exactDistanceSLC($coord_le_mans, $coord_paris), 4), 184.3091, 'Approximate distance between Le Mans and Paris is 257'); $coord_luxembourg = new GMapCoord(48.846559, 2.340689); $coord_saint_michel = new GMapCoord(48.853717, 2.344015); $t->is(round(GMapCoord::distance($coord_luxembourg, $coord_saint_michel) * 1000), 879, 'Approximate distance between RER Luxembourg and Saint-Michel is 879 meters'); $t->is(round(GMapCoord::exactDistance($coord_luxembourg, $coord_saint_michel) * 1000, 4), 833.4828, 'Approximate distance between RER Luxembourg and Saint-Michel is 879 meters'); $t->is(round(GMapCoord::exactDistanceSLC($coord_luxembourg, $coord_saint_michel) * 1000, 4), 832.2670000000001, 'Approximate distance between RER Luxembourg and Saint-Michel is 879 meters'); $coord_luxembourg = new GMapCoord(48.846559, 2.340689); $coord_saint_michel = new GMapCoord(48.853717, 2.344015); $center_of_the_world = new GMapCoord(0, 0); $bounds_paris = GMapBounds::createFromString('((48.791033113791144, 2.2240447998046875), (48.926559723513435, 2.4300384521484375))'); $t->ok($coord_saint_michel->isInsideBounds($bounds_paris), 'Saint-Michel Notre-Dame is in Paris'); $t->ok($coord_luxembourg->isInsideBounds($bounds_paris), 'RER Luxembourg is in Paris'); $t->ok(!$center_of_the_world->isInsideBounds($bounds_paris), 'Center of the world is not in Paris (amazingly)');