logo
Published on PostGIS.fr (http://old.postgis.fr)

Fonction PL/PGSQL permettant la génération de GPolyline

By djay
Créé 10 Mai 2008 - 15:39

Vous trouverez ici le code d'une fonction PL/PGSQL permettant de produire des fichiers XML utilisable depuis l'API Google Map pour produire des GPolyline.

"

CREATE OR REPLACE FUNCTION extractGPolyline(wkb geometry,color text,width int,html text) RETURNS text AS $$
DECLARE
    ret text;
    rett text;
    i int;
    mymax int;
    tmp geometry;
    rec record;
BEGIN
    i:=1;
    ret:='';
    SELECT Simplify(tmp,10) into tmp;
    SELECT NumPoints(tmp) INTO mymax;
    ret:='
';
    WHILE i <= mymax LOOP
        BEGIN
            SELECT '' INTO rett;
            ret:=ret||''||rett;
        EXCEPTION WHEN OTHERS         THEN
            RAISE NOTICE 'ERROR ON :%',AsText(wkb);
            RETURN FALSE;
        END;
        i=i+1;
    END LOOP;
    ret:=ret||'
';
    RETURN ret;
END;
$$ LANGUAGE plpgsql;

Temps d'exécution obtenus lors de l'utilisation de cette fonction sur un ensemble de 10000 LINESTRING avec la fonction simplify :

real 1m4.948s
user 0m0.550s
sys 0m0.050s

La production de tels fichiers xml n'est donc pas très couteuse. Par contre l'utilisation en l'état du document xml produit depuis cet exemple [1] demande d'utiliser un seuil de zoom minimum pour que l'affichage des GPolyline ne ralentisse pas trop l'application GMap que vous utilisez.


Source URL:
http://old.postgis.fr/node/472