/** * Test that the same object can not be added to the same changeset. * * @expectedException Services_OpenStreetMap_RuntimeException * @expectedExceptionMessage Object added to changeset already * * @return void */ public function testSameObjectAddedToChangeset() { if (!file_exists($this->credentialsFile)) { $this->markTestSkipped('Credentials file does not exist.'); } $wayId = 30357328; $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/way_30357328.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/way_30357328.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/changeset_id', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/diff_30357328_30357329.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/changeset_closed', 'rb')); $config = array('adapter' => $mock, 'server' => 'http://api06.dev.openstreetmap.org/', 'passwordfile' => $this->credentialsFile); $osm = new Services_OpenStreetMap($config); try { $changeset = $osm->createChangeset(); } catch (Services_OpenStreetMap_Exception $e) { } $way = $osm->getWay($wayId); $way->setTag('highway', 'residential'); $way->setTag('lit', 'yes'); $this->assertNotEquals('' . $way, ''); $way2 = $osm->getWay($wayId); $way2->setTag('highway', 'residential'); $way2->setTag('lit', 'yes'); $this->assertNotEquals('' . $way2, ''); $this->assertEquals(false, $changeset->isOpen()); $changeset->begin('Undo accidental highway change from residential to service'); $changeset->add($way); $changeset->add($way2); }
<?php /** * example6_closedway.php * 21-Aug-2011 * * PHP Version 5 * * @category example6_closedway * @package example6_closedway * @author Ken Guest <*****@*****.**> * @license BSD http://www.opensource.org/licenses/bsd-license.php * @version Release: @package_version@ * @link example6_closedway.php */ $version = '@package_version@'; if (strstr($version, 'package_version')) { set_include_path(dirname(dirname(__FILE__)) . ':' . get_include_path()); } require_once 'Services/OpenStreetMap.php'; $id = 18197393; $osm = new Services_OpenStreetMap(); try { $w = $osm->getWay($id); } catch (Services_OpenStreetMap_Exception $e) { var_dump($e); } $h = $w->isClosed(); echo "Way {$id} is ", $h ? 'closed' : 'not closed', "\n";
/** * example5_history.php * 22-Nov-2009 * * PHP Version 5 * * @category Services * @package Services_OpenStreetMap * @author Ken Guest <*****@*****.**> * @license BSD http://www.opensource.org/licenses/bsd-license.php * @version Release: @package_version@ * @link example5_history.php */ $version = '@package_version@'; if (strstr($version, 'package_version')) { set_include_path(dirname(dirname(__FILE__)) . ':' . get_include_path()); } require_once 'Services/OpenStreetMap.php'; $osm = new Services_OpenStreetMap(); try { $w = $osm->getWay(118063652); $w = $osm->getWay(24443279); } catch (Services_OpenStreetMap_Exception $e) { var_dump($e); } $all_versions = $w->history(); foreach ($all_versions as $way) { var_dump($way->getVersion()); } // vim:set et ts=4 sw=4:
/** * Test retrieving relations which refer to a specific way. * * @return void */ public function testWayBackRelations() { $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/way_5850969.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/way_5850969_relations.xml', 'rb')); $config = array('adapter' => $mock, 'server' => 'http://api06.dev.openstreetmap.org'); $osm = new Services_OpenStreetMap($config); $relations = $osm->getWay(5850969)->getRelations(); $this->assertInstanceOf('Services_OpenStreetMap_Relations', $relations); $this->assertEquals(2, sizeof($relations)); $this->assertEquals($relations[0]->getTag('name'), 'Dublin Bus route 14'); $this->assertEquals($relations[1]->getTag('name'), 'Dublin Bus route 75'); }