banniere

Le portail francophone de la géomatique


Toujours pas inscrit ? Mot de passe oublié ?
Nom d'utilisateur    Mot de passe              Toujours pas inscrit ?   Mot de passe oublié ?

Annonce

#1 Tue 12 November 2013 11:42

Jean-Marie64
Participant actif
Lieu: Pau
Date d'inscription: 6 Nov 2007
Messages: 131

[MAPSERVER] afficher des points obtenus avec une requête select

Bonjour

je souhaiterais afficher des points dont j'obtiens les coordonnées en faisant une requête à une base de données postgresql

la requête (simplifiée) utilisée est la suivante :

select sid, longitude, latitude from table

les champs longitude et latitude sont de type réel
j'ai essayé d'utiliser connectiontype postgresql mais sans succès (voir le mapfile ci-dessous)

peux-t'on y parvenir avec ce type de connexion ?

merci bien

Jean-Marie

Code:

layer
  name "LAYER_POINTS"
  group "LAYER_POINTS"
  type point
  status on
  connectiontype postgresql
  connection "host=...." 
  data "longitude,latitude from (select sid, longitude, latitude from sensor_config) as new_table using unique sid"  
  
  projection
    "init=epsg:4326"
  end

  class
    style
      symbol "Point"
      size 6
      color 220 0 0
    end
  end
  
end

Hors ligne

 

#2 Tue 12 November 2013 12:10

JP LLORENS
Participant assidu
Date d'inscription: 12 Nov 2008
Messages: 231

Re: [MAPSERVER] afficher des points obtenus avec une requête select

Bonjour.
Dans mes mapfiles je renvoie directement une géométrie (wkb_geometry, the_geom, ou autre) qui est présente dans ma base postgres/postGIS.
=> wkb_geometry from  (select * from programmation where XXXXX and XXXX) as foo USING UNIQUE ogc_fid
Je suppose que si vous renvoyez des coordonnées, il faut utiliser une fonction qui va générer un élément de type point à partir de ces coordonnées.
L'idéal n'est-il pas de passer par PostGIS pour créer une couche ou une vue avec la géométrie (fonction ST_MakePoint à utiliser avec ST_SetSRID)?
Cordialement
JPL

Hors ligne

 

#3 Tue 12 November 2013 14:07

tbonfort
Participant actif
Date d'inscription: 11 Oct 2007
Messages: 87

Re: [MAPSERVER] afficher des points obtenus avec une requête select

comme pointé par jp llorens, tu dois renvoyer une geometrie à mapserver. la bonne nouvelle c'est que tu peux le faire a la volée:

Code:

DATA "the_geom from select(st_setsrid(st_makepoint(lon, lat), 4326) as the_geom, sid from sensor) as foo using unique sid using srid=4326"

Hors ligne

 

#4 Tue 12 November 2013 16:21

Jean-Marie64
Participant actif
Lieu: Pau
Date d'inscription: 6 Nov 2007
Messages: 131

Re: [MAPSERVER] afficher des points obtenus avec une requête select

Bonjour

un grand merci pour vos explications !
j'ai effectivement opté pour le calcul à la volé car il y a peu de points

Jean-Marie

Hors ligne

 

Pied de page des forums

Powered by FluxBB