Ocena wątku:
  • 0 Głosów - 0 Średnio
  • 1
  • 2
  • 3
  • 4
  • 5
[OPEN LAYERS] Wczytywanie danych z MySQL
07-02-2012, 14:26, (Ten post był ostatnio modyfikowany: 07-02-2012, 14:35 {2} przez Odoakr.)
#4
RE: [OPEN LAYERS] Wczytywanie danych z MySQL
W pliku php łączysz się z bazą:
//połaczenie z serweram mysql
Kod PHP:
$polaczenie = @mysql_connect('localhost''uzytkownik''haslo')
or die(
'Brak połączenia z serwerem mysql. Błąd: '.mysql_error());
// połączenie z bazą
$db = @mysql_select_db('nazwa_bazy'$polaczenie)
or die(
'Nie mogę połączyć się z bazą danych. Błąd: '.mysql_error()); 

Przykład połaczenia z:
http://webmade.org/porady/nawiazanie-polaczenia.php

1) Tworzysz zapytanie do bazy danych i je wykonujesz.
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); 
W powyższym przypadku zapytanie jest do Postrgesa. Do MySQL pewnie będzie się trochę różnić.
Dla My sql:
Kod PHP:
$result mysql_query('SELECT gid, fid, ST_X(ST_centroid(geom)) as X, ST_Y(ST_centroid(geom)) as Y FROM XXX'); 

Jeśli masz X i Y w kolumnie to masz połowę kłopotu za sobą (w moim wypadku, za pomocą funkcji postgis generuje X i Y z geometrii poligonów. W najprostszym wypadku:
Kod PHP:
"SELECT id, fid, X, Y FROM nazwa_tabeli" 

2) konstruujesz obiekt geojson. W zasadzie możesz użyć ten kod. Tu też musisz wymienić funkcje PHP na te odpowiedzialne za obsługę MySQL. pg_fetch_array to mysql_fetch_array, a pg_close to mysql_close

Kod PHP:
// 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); 

3.


Wiadomości w tym wątku
RE: [OPEN LAYERS] Wczytywanie danych z MySQL - przez Odoakr - 07-02-2012, 14:26

Podobne wątki
Wątek: Autor Odpowiedzi: Wyświetleń: Ostatni post
  OPEN LAYER Punkty POI BIMSON 3 33 273 09-03-2012, 02:30
Ostatni post: Nacek

Skocz do: