/**
  * 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:
Esempio n. 4
0
 /**
  * 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');
 }