source: subversion/applications/rendering/wms/class.backend.php @ 34399

Last change on this file since 34399 was 9330, checked in by isortega, 11 years ago

WMS now features basic osmarender support (only z17), as well as more bugs.

File size: 2.3 KB
Line 
1<?php
2
3/// @author Iván Sánchez Ortega <ivan@sanchezortega.es>
4
5/**
6    OSM WMS ("OpenStreetMap Web Map Service")
7    Copyright (C) 2008, Iván Sánchez Ortega
8
9    This program is free software: you can redistribute it and/or modify
10    it under the terms of the GNU General Public License as published by
11    the Free Software Foundation, either version 3 of the License, or
12    (at your option) any later version.
13
14    This program is distributed in the hope that it will be useful,
15    but WITHOUT ANY WARRANTY; without even the implied warranty of
16    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
17    GNU General Public License for more details.
18
19    You should have received a copy of the GNU General Public License
20    along with this program.  If not, see <http://www.gnu.org/licenses/>.
21*/   
22
23/// Common backend functionality
24
25
26abstract class backend
27{
28
29        static $base_api_url='FIXME';
30
31        /// Returns two arrays, filled with the requested data
32        /// TODO: relations
33        function get_parsed_data($bbox,&$nodes,&$ways,&$relations)
34        {
35                $nodes = $ways = $relations = array();
36                $xml = simplexml_load_string($this->get_data_as_osm($bbox));
37//              $xml = simplexml_load_file("/tmp/osmxapi.xml");
38       
39//      var_dump($xml);
40       
41                foreach($xml->node as $parsed_node)
42                {
43//                      $attrs = $parsed_node->attributes();
44                        $tags =array();
45                        foreach($parsed_node->tag as $tag)
46                        {
47// print_r($tag);
48                                $tags[] = array((string)$tag['k'],(string)$tag['v']);
49                        }
50                        $nodes[ (int)$parsed_node['id'] ] = array( (float)$parsed_node['lat'], (float)$parsed_node['lon'] , $tags);
51                }
52               
53               
54                foreach($xml->way as $parsed_way)
55                {
56                        $way_id = (int)$parsed_way['id'];
57                        foreach($parsed_way->nd as $nd)
58                        {
59                                $ways[ $way_id ]['nodes'][] = (int)$nd['ref'];
60                        }
61                               
62//                      $attrs = $parsed_way->attributes();
63                        foreach($parsed_way->tag as $tag)
64                        {
65                                $ways[ $way_id ]['tags'][] = array($tag['k'],$tag['v']);
66                        }
67                       
68                        $ways[ $way_id ]['user'] = $parsed_way['user'];
69                        $ways[ $way_id ]['timestamp'] = $parsed_way['timestamp'];
70
71                }
72       
73//      foreach($nodes as $id=>$node)
74//      {
75//              list($x,$y,$ts) = $node;
76//              echo "$id : $x,$y";
77//              if (!empty($ts))
78//              {
79//                      echo " - ";
80//                      $r=array();
81//                      foreach($ts as $t)
82//                              $r[] = "{$t[0]}={$t[1]}";
83//                      echo implode(' ; ',$r);
84//              }
85//              echo "\n";
86//      }
87
88        }
89       
90
91}
92
93
94
95
Note: See TracBrowser for help on using the repository browser.