Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
genrowanie geojson z postgresa
19-01-2012, 16:49, (Ten post był ostatnio modyfikowany: 07-02-2012, 14:22 {2} przez Odoakr.)
#1
genrowanie geojson z postgresa
Hej!

To jest skrypt, który generuje geojson z bazy. Chcę go podczytać do openlayers przez new OpenLayers.Format.GeoJSON();

jeżeli wpiszę jako 'url' podany wyżej plik to wywala mi błąd (linia 305 w pliku openLayers.js)

http://www.geostrona.pl/_temp/geojson.php

Kod PHP:
echo "{
"
type": "FeatureCollection",
"
features": [
"
;

        while (
$row pg_fetch_array($result)) {
        
            echo 
"{ "type": "Feature", "id": ".$row[0].", "properties": { "gid": ".$row[0].", "fid": ".$row[1]." }, "geometry": { "type": "Point", "coordinates": [ ".$row[2].", ".$row[3]." ] } }
,
"
;
        
        
        } 
        echo 
"] 
}"




QGIS "łyka" ten wynik i po zapisaniu wyświetla się wszystko jak trzeba.
Problemem jest to, że wszystko robię przez echo, a nie przez funkcje PHP do generowania JSON???

Tu widzę kilka fragmentów kodu,
http://www.osgeo.org/pipermail/openlayer...21995.html
zrobiłem to bardziej po ludzku i teraz błędu nie wyrzuca, ale za to geometrii nie widzi...
Pewnie dlatego, że mi ją w cudzusłowie wsadziło....

http://www.geostrona.pl/_temp/geojson2.php


Kod PHP:
        $query "SELECT gid, fid, ST_X(ST_centroid(geom)) as X, ST_Y(ST_centroid(geom)) as Y FROM XXX";
        
$result pg_query($dbconn$query);
        

 
 
 
// Return route as GeoJSON
   
$geojson = array(
       
'type'      => 'FeatureCollection',
       
'features'  => array()
    ); 
   
    
// Add edges to GeoJSON array
    
while($row=pg_fetch_array($result)) {  
 
       
$feature = array(
          
'type' => 'Feature',
          
'type' => $row[0],
          
'properties' => array(
             
'gid' => $row[0],
             
'fid' => $row[1]
          ),
          
         
'geometry' => array(
            
'type' => 'Point',
            
'coordinates' => array($row[2], $row[3])
            
            
          
          )
       );
       
       
// Add feature array to feature collection array
       
array_push($geojson['features'], $feature);
    }
 
    
// Close database connection
    
pg_close($dbconn);
 
    
// Return routing result
    //header('Content-type: application/json',true);
    
echo json_encode($geojson); 

OK. Mam to. na przyszłość. Geometria też musi iść jako tablica:
Kod PHP:
'geometry' => array(
            
'type' => 'Point',
            
'coordinates' => array($row[2], $row[3])
            
            
          
          ) 


Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  GEOJSON Podmiana domyślnego markera + rotation BIMSON 14 69 056 23-02-2012, 09:39
Ostatni post: BIMSON

Skocz do: