Jag har jobbat en hel del med Open Source GIS och databaser nu i sommar, men har inte varit inne på områden som gör det superenkelt för ”vanliga” användare att ta del av och uppdatera informationen i geografiska databaser.
Jag är övertygad om att de som inte är vana vid GIS har ett inbyggt motstånd till att lära sig det. Att söka i webbformulär och uppdatera textfält på en hemsida det klarar dock de flesta. Min plan är att skapa en vanlig webbsida med koppling till de geografiska databaserna, där användare kan söka och uppdatera informationen, utan att behöva använda ett GIS, eller kartor över huvud taget.
Installera PHP5 med kommandot ”sudo apt-get install php5 php5-pgsql”.
Starta om Apache med: ”sudo /etc/init.d/apache2 restart”
Kontrollera installationen genom att skapa ett enkelt PHP skript:
<html> <head> <title> PHP Test </title> </head> <body> PHP5 test:<br> <?php phpinfo( ); ?> </body> </html>
Spara filen i /var/www/ med filändelsen .php (Du kan behöva sätta rättigheterna på mappen med kommandot ”sudo chmod 777 /var/www/”) Testa i en webläsarer med adressen ”http://’ip adress’/’filnamn.php'”. Förhoppningsvis får du nu upp en sida med massor av information. Om inte kan det vara samma problem jag hade när jag hade glömt installera php5-pgsql.
Nu över till databaskopplingen. PHP-skript omsluts av taggarna <?php och ?> (se ovan). Där emellan skriver man sin PHP kod.
Skapa koppling mot databasen:
$databas = pg_connect("host=192.168.0.111 port=5432 dbname=testdb user=postgres"); if (!$databas) { die("Fel i databasanslutning: " . pg_last_error()); }
Variabeln $databas kan heta vad som helst, ipadressen skall vara serverns adress, dbname är den databas du vill ansluta till. Raderna under är för felhantering.
Ställ en fråga till databasen:
$sql = "SELECT * FROM fotografier"; $resultat = pg_query($databas, $sql); if (!$resultat) { die("Fel i SQL-frågan: " . pg_last_error()); }
Här läser jag allt från min tabell fotografier, och har även med felhantering. Upprepning genom hela tabellen:
while ($row = pg_fetch_array($resultat)) { echo "Riktning: " . $row[8] . "<br />"; echo "Bild: <a href='" . $row[10] . "'>"; echo "<img SRC='" . $row[9] . "'></a><p />"; }
För varje rad läser och använder jag informationen i kolumn 8, 9 och 10. Lägg märke till hur HTML koden är inbakad.
Avslutningsvis stänger jag databasen:
pg_free_result($resultat); pg_close($databas);
Resultatet av allt kan du se på min testsida: phptest.php.
Jag tänker använda detta för att skapa en websida där vem som helst i formulär kan söka och uppdatera information om bilderna i databasen. Jag är övertygad om att det är enklare för vanliga användare att uppdatera data i ett webbformulär än i ett GIS program. Med en webbsida så är alla problem med databaskopplingar fixade, och jag kan styra användarna till specifika fält i tabellerna. Samtidigt så bibehålls den geografiska kopplingen och de som använder data i ett GIS-system kan ta del av den uppdaterade informationen.