Php-strukturer for geometrier

Hvis du ikke vet hva PHP er, eller aldri har trengt å programmere noe som avhenger av geometrier som linjer eller punkter kan du trygt se bort fra denne posten.

Hvis ikke kan du lese videre. Som nevnt tidligere jobber jeg med PostGIS og Google Maps (GM). GM kjører på JavaScript, og dermed er ikke databasespørringer mot PostGIS en trivialitet. Imidlertid kan man bruke XML (og da har man AJAX, Asynchronous JavaScript and XML). men hvordan genererer man så XML fra PostGIS? Via PHP såklart. Her er støtten for PostGIS spørringer native, og det å generere XML er ikke vanskelig.

Et problem står dog igjen: hvordan skal man håndtere 2D-data i PHP? Særlig når PostGIS spytter ut noe så hårete som WKT (Well-Known Text)? For min del ble svaret objektorientert. Et par php-klasser for å ta seg av hhv. punkter og linjer, som støtter konvertering mellom WKT, XML og arrayer/floats.

Og resultatet? Det deler jeg nå med omverdenen. I håp om at både noen kan få bruk for det, og om at noen kanskje forbedrer disse to klassene. Lisensen valgt er MIT-lisensen, den er kort sagt blandt de frieste du finner, så gjør hva du vil med koden, også om du er et stort, stygt selskap med de-facto monopol (hørte dere det ESRI?). Som jeg skriver i filene: Du må ikke, men bruker eller endrer du koden setter jeg pris på tilbakemeldinger!

Klassene finner du her:

Og snakker du php tar jeg gjerne imot kommentarer uansett. Også en stor takk til Alex og Magnus for å bidra til å løse noen av mine problemer med objektorientering i php.

2 thoughts on “Php-strukturer for geometrier

  1. Alexander Nossum

    Flott kode;) Og veldig veldokumentert!

    Som kanskje et litt sviende stikk, så kom jeg over PostGIS-funksjonene As_** fks; AsKML(geom), AsGML(geom) og ST_AsGeoJson(geom) som gir ut strenger med de forskjellige formatene. Dog de formatene er kanskje vel komplekse til relativt enkle oppgaver, så det har jo absolutt noe for seg og parse til et enklere format som er enklere å behandle videre.

    Mer om funksjonene: http://postgis.refractions.net/documentation/manual-1.3/ch06.html#id2748541

  2. Atle

    Typisk! Jeg visste vel at det var en slik mulighet, men i og med at jeg skulle ha med annet enn bare koordinatene i XMLen synes jeg det var like greit å gjøre det på denne måten.

    Men, ellers takk for link og godord 😉

Leave a Reply

Your email address will not be published. Required fields are marked *