/** * Should get an empty array (unauthorised connection) * * @return void */ public function testPermissionsUnauthorised() { $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/permissionsUnauthorised.xml', 'rb')); $config = array('adapter' => $mock, 'server' => 'http://api.openstreetmap.org/', 'user' => '*****@*****.**', 'password' => 'wilmaAevah'); $osm = new Services_OpenStreetMap($config); $permissions = $osm->getPermissions(); $expected = array(); $this->assertEquals($permissions, $expected); }
/** * Test20205 * * @return void */ public function test20205() { $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/PEARBug20205_moskau_ru.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/PEARBug20205_moskau_en.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/PEARBug20205_russia_en.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/PEARBug20205_russia_fr.xml', 'rb')); $config = array('adapter' => $mock, 'server' => 'http://api06.dev.openstreetmap.org/'); $osm = new Services_OpenStreetMap($config); $osm->getConfig()->setAcceptLanguage('ru,en-AU'); $test = $osm->getPlace('Moskau'); $attribs = $test[0]->attributes(); $display = (string) $attribs['display_name']; $expected = "Москва, " . "Центральный федеральный округ, " . "Российская Федерация"; $this->assertEquals($display, $expected); $osm->getConfig()->setAcceptLanguage('en'); $test = $osm->getPlace('Moskau'); $attribs = $test[0]->attributes(); $display = (string) $attribs['display_name']; $expected = 'Moscow, Central Federal District, Russian Federation'; $this->assertEquals($display, $expected); $test = $osm->getPlace('Russia'); $attribs = $test[0]->attributes(); $display = (string) $attribs['display_name']; $expected = 'Russian Federation'; $this->assertEquals($display, $expected); $osm->getConfig()->setAcceptLanguage('fr'); $test = $osm->getPlace('Russia'); $attribs = $test[0]->attributes(); $display = (string) $attribs['display_name']; $expected = 'Fédération de Russie'; $this->assertEquals($display, $expected); }
/** * Test reverse lookup * * @return void */ public function testReverse() { $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/mapquestReverseGeocodeIrishTimes.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/mapquestReverseGeocodeChurchtown.xml', 'rb')); $config = array('server' => 'http://open.mapquestapi.com/nominatim/v1/', 'adapter' => $mock); $osm = new Services_OpenStreetMap($config); $nominatim = new Services_OpenStreetMap_Nominatim($osm->getTransport()); $nominatim->setServer('mapquest'); $xml = $nominatim->setFormat('xml')->reverseGeocode("53.3459641", "-6.2548149"); $this->AssertEquals($xml[0]->addressparts->house, "The Irish Times"); $this->AssertEquals($xml[0]->addressparts->house_number, "24-28"); $this->AssertEquals($xml[0]->addressparts->road, "Tara Street"); $this->AssertEquals($xml[0]->addressparts->city, "Dublin"); $this->AssertEquals($xml[0]->addressparts->county, "County Dublin"); $this->AssertEquals($xml[0]->addressparts->state_district, "Leinster"); $this->AssertEquals($xml[0]->addressparts->postcode, "2"); $this->AssertEquals($xml[0]->addressparts->country, "Ireland"); $this->AssertEquals($xml[0]->addressparts->country_code, "ie"); $nominatim->setCountryCodes('ie'); $res = $nominatim->search('churchtown'); $this->assertEquals(count($res), 10); }
/** * Test reverse geocode. * * This is also a good example of how to use Services_OpenStreetMap_Nominatim * separate from the core Services_OpenStreetMap object. * * @return void */ public function testNomimatimReverseGeocode() { $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/nominatim_reverse_it.xml', 'rb')); $osm = new Services_OpenStreetMap(array('adapter' => $mock)); $nominatim = new Services_OpenStreetMap_Nominatim($osm->getTransport()); $xml = $nominatim->setFormat('xml')->reverseGeocode("53.3459641", "-6.2548149"); $this->AssertEquals($xml[0]->result, "The Irish Times, 24-28, Tara Street, Dublin 2, Dublin, " . "County Dublin, Leinster, D02, Ireland"); $this->AssertEquals($xml[0]->addressparts->road, "Tara Street"); $this->AssertEquals($xml[0]->addressparts->city, "Dublin"); }
<?php /** * example1_cahir.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(); $osm->getConfig()->setServer('http://api.openstreetmap.org/'); try { $osm->get(52.821022799999994, -8.3564758, 53.0428644, -7.7330017); file_put_contents("homelands.osm", $osm->getXml()); } catch (Exception $e) { echo $e->getMessage(), "\n"; } // vim:set et ts=4 sw=4:
/** * Test getting user info for user other than authorised user * * @return void */ public function testUser11324() { $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/user11324.xml', 'rb')); $config = array('adapter' => $mock, 'server' => 'http://api06.dev.openstreetmap.org/', 'user' => '*****@*****.**', 'password' => 'w1lma4evah'); $osm = new Services_OpenStreetMap($config); $user = $osm->getUserById(6367); $this->assertEquals($user->getDisplayName(), 'kenguest'); $this->assertEquals($user->getId(), 11324); $this->assertEquals($user->getChangesets(), 1910); $this->assertEquals($user->getTraces(), 115); $this->assertEquals($user->getBlocksReceived(), 0); $this->assertEquals($user->getActiveBlocksReceived(), 0); $this->assertNull($user->getBlocksIssued()); $this->assertNull($user->getActiveBlocksIssued()); $this->assertNull($user->getLanguages()); $this->assertEquals($user->getRoles(), array()); }
<?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:
/** * Open a new changeset, create a node and save it by associating it with * that changeset and then committing. * The id of the node should change from -1 to a positive integer/double. * * @return void */ public function testSaveNode() { if (!file_exists($this->credentialsFile)) { $this->markTestSkipped('Credentials file does not exist.'); } $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/changeset_id', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/diff_create_node.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); $lat = 52.8638729; $lon = -8.1983611; $node = $osm->createNode($lat, $lon, array('building' => 'yes', 'amenity' => 'vet')); $this->assertEquals($node->getTags(), array('building' => 'yes', 'amenity' => 'vet')); $this->assertEquals($lat, $node->getlat()); $this->assertEquals($lon, $node->getlon()); $node->setTag('amenity', 'veterinary')->setTag('name', 'O\'Kennedy'); $this->assertEquals($node->getTags(), array('building' => 'yes', 'amenity' => 'veterinary', 'name' => 'O\'Kennedy')); $this->assertEquals(-1, $node->getId()); $changeset = $osm->createChangeset(); $changeset->begin("Add O'Kennedy vets in Nenagh"); $changeset->add($node); $changeset->commit(); $this->assertEquals($node->getId(), 1448499623); }
/** * Test getRelations called with more than one argument/parameter. * * @return void */ public function testGetRelationsManyArgs() { $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/relations_917266_20645_2740.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); $relations = $osm->getRelations(917266, 20645, 2740); $this->assertEquals(3, sizeof($relations)); $relationsInfo = array(array('id' => 2740, 'name' => 'The Wicklow Way', 'type' => 'route', 'members' => array('role' => '', 'count' => 113, 'type' => 'node')), array('id' => 20645, 'name' => 'International E-road network', 'type' => 'network', 'members' => array('role' => '', 'type' => 'relation', 'count' => 48)), array('id' => 917266, 'name' => 'Dublin Bus route 14', 'type' => 'route', 'members' => array('role' => 'forward', 'type' => 'way', 'count' => 112))); foreach ($relations as $key => $relation) { $tags = $relation->getTags(); $members = $relation->getMembers(); $this->assertEquals($tags['name'], $relationsInfo[$key]['name']); $this->assertEquals($tags['type'], $relationsInfo[$key]['type']); $this->assertEquals($relation->getId(), $relationsInfo[$key]['id']); $this->assertEquals(sizeof($members), $relationsInfo[$key]['members']['count']); $this->assertEquals($members[0]['type'], $relationsInfo[$key]['members']['type']); $this->assertEquals($members[0]['role'], $relationsInfo[$key]['members']['role']); } }
$v = strpos($_GET['q'], '|'); if ($v != false) { list($k, $v) = explode('|', $_GET['q']); $k = trim($k); $v = trim($v); } else { die; } } if (isset($_GET['lat'])) { $lat = $_GET['lat']; } if (isset($_GET['lat'])) { $lon = $_GET['lon']; } $osm = new Services_OpenStreetMap(); $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) {
<?php /** * example1_savetolocalfile.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 example12_notes.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 { $osm->getConfig()->setServer('http://api.openstreetmap.org/'); } catch (Exception $ex) { var_dump($ex->getMessage()); // Fall back to default server...so carry on. } var_dump($osm->reverseGeocode("52.9158472", "-8.1755081", 0)); var_dump($osm->reverseGeocode("34.6863136", "94.7452061", 0));
/** * 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')); }
/** * Return an array of specified nodes. * * If none can be retrieved, for example if they all have been deleted, * then the boolean false value is returned. * * <code> * $osm = new Services_OpenStreetMap(); * var_dump($osm->getNodes(52245107, 52245108)); * </code> * Or * <code> * $osm = new Services_OpenStreetMap(); * var_dump($osm->getNodes(array(52245107, 52245108))); * </code> * * @return Services_OpenStreetMap_Nodes */ public function getNodes() { return $this->getTransport()->getObjects('node', Services_OpenStreetMap::getIDs(func_get_args())); }
/** * Test searching changesets for those by a specific person via * display_name and created within a certain timespan. * * @return void */ public function testTimeAfterOnly() { $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/changeset_search_timespan.xml', 'rb')); $config = array('adapter' => $mock, 'server' => 'http://api06.dev.openstreetmap.org/'); $osm = new Services_OpenStreetMap($config); $time = '17 November 2011'; $time2 = '29 November 2011'; $displayName = new Services_OpenStreetMap_Criterion('display_name', 'kenguest'); $this->assertEquals($displayName->query(), 'display_name=kenguest'); $this->assertEquals($displayName->type(), 'display_name'); $c = new Services_OpenStreetMap_Criterion('time', $time, $time2); $this->assertEquals($c->query(), 'time=2011-11-17T00%3A00%3A00Z%2C2011-11-29T00%3A00%3A00Z'); $this->assertEquals($c->type(), 'time'); $changesets = $osm->searchChangesets(array($displayName, $c)); $this->assertInstanceOf('Services_OpenStreetMap_Changesets', $changesets); }
* 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 example10_user_info.php */ $version = '@package_version@'; if (strstr($version, 'package_version')) { set_include_path(dirname(dirname(__FILE__)) . ':' . get_include_path()); } require_once 'Services/OpenStreetMap.php'; $id = 1; $osm = new Services_OpenStreetMap(); $user = $osm->getUserById($id); if ($user === false) { die("User #{$id} not found\n"); } echo "Display Name: ", $user->getDisplayName(), " (", $user->getId(), ")\n"; echo "Roles "; var_dump($user->getRoles()); echo "\n"; echo "#Changesets ", $user->getChangesets(), "\n"; echo "#Traces ", $user->getTraces(), "\n"; echo "#BlocksReceived ", $user->getBlocksReceived(), "\n"; echo "#ActiveBlocksReceived ", $user->getActiveBlocksReceived(), "\n"; echo "#BlocksIssued ", $user->getBlocksIssued(), "\n"; echo "#Languages "; var_dump($user->getLanguages());
<?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:
* * 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 example12_notes.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(array('verbose' => true)); try { $osm->getConfig()->setServer('http://api.openstreetmap.org/'); } catch (Exception $ex) { var_dump($ex->getMessage()); // Fall back to default server...so carry on. } $notes = $osm->getNotesByBbox(-8.247245026639691, 52.8482419135407, -8.17416147865479, 52.8995782553221); echo $notes; foreach ($notes as $note) { echo 'ID: ', $note->getId(), "\n"; echo 'LAT/LON: ', $note->getLat(), "/", $note->getLon(), "\n"; echo 'STATUS: ', $note->getStatus(), "\n"; echo 'CREATED: ', strftime("%c %T", $note->getDateCreated()), "\n"; echo 'URL: ', $note->getUrl(), "\n"; echo 'COMMENT URL: ', $note->getCommentUrl(), "\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:
<?php require_once 'Services/OpenStreetMap.php'; $id = 1707362; $osm = new Services_OpenStreetMap(); $relation = $osm->getRelation($id); file_put_contents("relation.{$id}.xml", $relation->getXml());
#!/usr/bin/php <?php /** * Check API/DB/GPX server status * 28 May 2012 * * PHP Version 5 * * @category Services * @package Services_OpenStreetMap * @author Ken Guest <*****@*****.**> * @license BSD http://www.opensource.org/licenses/bsd-license.php * @link example11_checkstatus.php */ $version = '@package_version@'; if (strstr($version, 'package_version')) { set_include_path(dirname(dirname(__FILE__)) . ':' . get_include_path()); } require_once 'Services/OpenStreetMap.php'; $config = array('server' => 'http://api.openstreetmap.org/'); $osm = new Services_OpenStreetMap($config); echo "Querying {$config['server']}\n\n"; echo "API Status: ", $osm->getApiStatus(), "\n"; echo "DB Status: ", $osm->getDatabaseStatus(), "\n"; echo "GPX Status: ", $osm->getGpxStatus(), "\n";
/** * Test the bboxToMinMax method * * @return void */ public function testBboxToMinMax() { $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $config = array('adapter' => $mock); $osm = new Services_OpenStreetMap($config); $this->assertEquals($osm->bboxToMinMax('0.0327873', '52.260074599999996', '0.0767326', '52.282047299999995'), array('52.260074599999996', '0.0327873', '52.282047299999995', '0.0767326')); }
$version = '@package_version@'; if (strstr($version, 'package_version')) { set_include_path(dirname(dirname(__FILE__)) . ':' . get_include_path()); } require_once 'Services/OpenStreetMap.php'; require_once 'HTTP/Request2.php'; require_once 'HTTP/Request2/Adapter/Mock.php'; $osm = new Services_OpenStreetMap(); $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/../tests/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/../tests/responses/changeset.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/../tests/responses/changeset.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/../tests/responses/diff_create_node.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/../tests/responses/changeset_closed', 'rb')); $config = array('adapter' => $mock, 'server' => 'http://api.openstreetmap.org/', 'passwordfile' => __DIR__ . '/credentials'); $osm = new Services_OpenStreetMap($config); $mm = $osm->bboxToMinMax(-8.6519835, 52.638735499999996, -8.6214513, 52.649915099999994); $osm->get($mm[0], $mm[1], $mm[2], $mm[3]); $results = $osm->search(array("building" => "yes")); $changeset = $osm->createChangeset(); $changeset->begin('Additional details for ballinacurra gardens.'); foreach ($results as $result) { $addrStreet = $result->getTag('addr:street'); if ($addrStreet != 'Oakview Drive') { continue; } $user = $result->getUser(); $name = $result->getTag('name'); if ('exampleusername' == $user) { $tags = $result->getTags(); if (isset($tags['building_roof'])) {
/** * example1_savetolocalfile.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(array('verbose' => true)); var_dump($osm->getConfig()); try { $osm->getConfig()->setServer('http://api.openstreetmap.org/'); } catch (Exception $ex) { var_dump($ex->getMessage()); // Fall back to default server...so carry on. } $osm->get(52.84824191354071, -8.247245026639696, 52.89957825532213, -8.174161478654796); // $osm->get(52.9208049, -8.1156559, 52.9695733, -8.0005314); file_put_contents("osm.osm", $osm->getXml()); // 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'); }
<?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";
* example7_searchchangeset.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 example7_searchchangeset.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 { $changesets = $osm->searchChangesets(array(new Services_OpenStreetMap_Criterion('user', 11324), new Services_OpenStreetMap_Criterion('bbox', -8.059027499999999, 52.9347449, -7.9966939, 52.9611999), new Services_OpenStreetMap_Criterion('closed'))); } catch (Services_OpenStreetMap_Exception $e) { die($e->getMessage()); } foreach ($changesets as $changeset) { echo $changeset->getCreatedAt(), "\t"; try { echo $changeset->getTag('comment'), "\n"; } catch (Exception $e) { echo "\n"; } }
<?php /** * example2_loadandparselocaldata.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(); $osm->loadXML("./ballinacurragardens.osm"); $results = $osm->search(array("building" => "yes")); var_dump($results); // vim:set et ts=4 sw=4:
* * 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(); $osm->loadXML("./osm.osm"); $results = $osm->search(array("amenity" => "pharmacy")); echo "List of Pharmacies\n"; echo "==================\n\n"; foreach ($results as $result) { $name = $result->getTag('name'); $addrStreet = $result->getTag('addr:street'); $addrCity = $result->getTag('addr:city'); $addrCountry = $result->getTag('addr:country'); $addrHouseName = $result->getTag('addr:housename'); $addrHouseNumber = $result->getTag('addr:housenumber'); $openingHours = $result->getTag('opening_hours'); $phone = $result->getTag('phone'); $line1 = $addrHouseNumber ? $addrHouseNumber : $addrHouseName; if ($line1 != null) {
/** * Testa * * @return void */ public function testa() { $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $mock->addResponse(fopen(__DIR__ . '/responses/get_notes.xml', 'rb')); $server = 'http://api06.dev.openstreetmap.org/'; $config = array('adapter' => $mock, 'server' => $server); $osm = new Services_OpenStreetMap($config); $minlon = "-8.2456593"; $minlat = "52.8488977"; $maxlon = "-8.1751247"; $maxlat = "52.8839662"; $notes = $osm->getNotesByBbox($minlon, $minlat, $maxlon, $maxlat, 200, 14); $note = $notes[0]; $this->assertInstanceOf('Services_OpenStreetMap_Notes', $notes); $this->assertInstanceOf('Services_OpenStreetMap_Note', $note); $comments = $note->getComments(); $comment = $comments[0]; $this->assertInstanceOf('Services_OpenStreetMap_Comment', $comment); $this->assertInstanceOf('Services_OpenStreetMap_Comments', $comments); }
/** * Test generator * * @return void */ public function testGenerator() { $mock = new HTTP_Request2_Adapter_Mock(); $mock->addResponse(fopen(__DIR__ . '/responses/capabilities.xml', 'rb')); $config = array('api_version' => '0.6', 'adapter' => $mock, 'password' => null, 'passwordfile' => null, 'user' => null, 'verbose' => false, 'User-Agent' => 'Services_OpenStreetMap', 'server' => 'http://api06.dev.openstreetmap.org/'); $osm = new Services_OpenStreetMap($config); $generator = $osm->getConfig()->getGenerator(); $this->assertEquals($generator, 'OpenStreetMap server'); $mock2 = new HTTP_Request2_Adapter_Mock(); $mock2->addResponse(fopen(__DIR__ . '/responses/capabilities_jxapi.xml', 'rb')); $config['adapter'] = $mock2; $osm = new Services_OpenStreetMap($config); $generator = $osm->getConfig()->getGenerator(); $this->assertEquals($generator, 'Java XAPI Server'); }