Example #1
0
 /**
  * Create and return a Services_OpenStreetMap_Node
  *
  * Latitude and longitude must be specified, array of tags optional.
  *
  * <code>
  * $node = $osm->createNode($lat, $lon, array('building' => 'yes'));
  * </code>
  *
  * @param float $latitude  Latitude of node
  * @param float $longitude Longitude of node
  * @param array $tags      Array of key->value tag pairs.
  *
  * @return Services_OpenStreetMap_Node
  */
 public function createNode($latitude, $longitude, array $tags = array())
 {
     $node = new Services_OpenStreetMap_Node();
     $config = $this->getConfig();
     $apiVersion = $config->getValue('api_version');
     $userAgent = $config->getValue('User-Agent');
     $xml = "<?xml version='1.0' encoding='UTF-8'?>\n<osm version='{$apiVersion}' generator='{$userAgent}'>\n<node lat='{$latitude}' lon='{$longitude}' version='1'/></osm>";
     $node->setLat($latitude);
     $node->setLon($longitude);
     $node->setXml(simplexml_load_string($xml));
     $node->setId($this->newId--);
     if (!empty($tags)) {
         foreach ($tags as $key => $value) {
             $node->setTag($key, $value);
         }
     }
     return $node;
 }