/** * Test retrieving just one relation. * * @return void */ public function testGetRelation() { $id = 1152802; $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/relation.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/relation_changeset.xml', 'rb')); $config = array('adapter' => $mock, 'server' => 'http://api06.dev.openstreetmap.org/'); $osm = new Services_OpenStreetMap($config); $relation = $osm->getRelation($id); $this->assertEquals($id, $relation->getId()); $changesetId = (int) $relation->getAttributes()->changeset; $getTags = $relation->getTags(); $this->assertEquals($getTags['name'], 'Mitchell Street'); $this->assertEquals($getTags['type'], 'associatedStreet'); $changeset = $osm->getChangeset($changesetId); $this->assertEquals($changesetId, $changeset->getId()); $getTags = $changeset->getTags(); $this->assertEquals($getTags['comment'], 'IE. Nenagh. Mitchell Street POIs'); $members = $relation->getMembers(); $this->assertEquals(18, sizeof($members)); foreach ($members as $member) { $this->assertEquals('house', $member['role']); $this->assertEquals('way', $member['type']); $this->assertTrue(is_numeric($member['ref'])); } }
<?php /** * example4_getchangeset.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 osmx.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 { var_dump($osm->getChangeset(2217466)); } catch (Services_OpenStreetMap_Exception $e) { var_dump($e); } // vim:set et ts=4 sw=4: