/** * If an error occurs while posting changeset information to the server an * exception should be thrown. * * @expectedException Services_OpenStreetMap_Exception * @expectedExceptionMessage Error posting changeset * * @return void */ public function testDeleteNodeDiffError400() { if (!file_exists($this->credentialsFile)) { $this->markTestSkipped('Credentials file does not exist.'); } $nodeID = 1436433375; $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/node_1436433375.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/changeset_id', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/400', '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) { echo $e->getMessage(); return; } $node = $osm->getNode($nodeID); $this->assertTrue($node != false); $changeset->begin("Delete unrequired node."); $changeset->add($node->delete()); $this->assertEquals(true, $changeset->isOpen()); $changeset->commit(); }
/** * Test retrieving the history of an object. * * @return void */ public function testGetHistory() { $id = 52245107; $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/node.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/node_history.xml', 'rb')); $config = array('adapter' => $mock, 'server' => 'http://api06.dev.openstreetmap.org'); $osm = new Services_OpenStreetMap($config); $node = $osm->getNode($id); $history = $node->history(); foreach ($history as $key => $version) { $this->assertEquals($version, $history[$key]); $this->assertEquals($id, $version->getId()); } }
/** * Test retrieving relations that refer to a specific node. * * @return void */ public function testGetRelations() { $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/node_597697114.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/relation_405053.xml', 'rb')); $config = array('adapter' => $mock, 'server' => 'http://api06.dev.openstreetmap.org/'); $osm = new Services_OpenStreetMap($config); $relations = $osm->getNode(597697114)->getRelations(); $this->assertInstanceOf('Services_OpenStreetMap_Relations', $relations); $this->assertEquals(sizeof($relations), 1); $this->assertInstanceOf('Services_OpenStreetMap_Relation', $relations[0]); $this->assertEquals($relations[0]->getTags(), array('complete' => 'no', 'name' => 'Dublin Bus route 75', 'operator' => 'Dublin Bus', 'ref' => '75', 'route' => 'bus', 'type' => 'route')); }
$osm->loadXML("./map.osm"); $results = $osm->search(array($k => $v)); echo "List of {$k}/{$v}\n"; echo "==================\n\n"; $oh = new Services_OpenStreetMap_OpeningHours(); foreach ($results as $result) { if ($result->getType() == 'node') { $bLat = $result->getLat(); $bLon = $result->getLon(); } elseif ($result->getType() == 'way' && $result->isClosed()) { $nodes = $result->getNodes(); array_pop($nodes); $bLat = 0; $bLon = 0; foreach ($nodes as $node) { $n = $osm->getNode($node); $bLat += $n->getLat(); $bLon += $n->getLon(); } $bLat = $bLat / sizeof($nodes); $bLon = $bLon / sizeof($nodes); } $distance = calculateDistance($lat, $lon, $bLat, $bLon); // $distance = $distance * 1000; // convert to metres $result->distance = $distance; $result->lat = $bLat; $result->lon = $bLon; } usort($results, sortByDistance()); foreach ($results as $result) { $tags = $result->getTags();
<?php /** * example3_genericdemo.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 CVS: <cvs_id> * @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(); // var_dump($osm->getCoordsOfPlace("Nenagh, Ireland")); var_dump($osm->getNode(52245107)); // vim:set et ts=4 sw=4: