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