#1 Thu 15 August 2013 12:36
- john_
- Juste Inscrit !
- Date d'inscription: 15 Aug 2013
- Messages: 3
Choix du meilleur SRID pour mon utilisation
Bonjour,
Je souhaite réaliser une petite application sur mon téléphone qui me permet de localiser les cafés/bars/etc dans un certain rayon (je me rends bien compte que ça existe déjà, c'est juste pour apprendre). Pour cela j'ai une application Android coté client et un web service coté serveur qui récupère les informations dans une base de données PostGIS qui contient les données d'openstreetmap.
Mon problème est le suivant, mes données sont actuellement représentées dans le SRID 900913 alias EPSG 3857 mais est il le meilleur SRID pour réaliser le traitement que je souhaite faire?
J'ai cru comprendre que ce SRID déformait les surfaces, il suffit de regarder le Groenland sur http://www.openstreetmap.org/#map=1/42/7 pour s'en rendre compte, il est énorme! Je risque d'avoir des cafés à 150m alors qu'ils ne sont qu'à 100m, non?
Merci.
Cordialement,
John_
Hors ligne
#2 Thu 15 August 2013 17:31
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Choix du meilleur SRID pour mon utilisation
Bonjour,
Plusieurs options:
• Si vous contrôlez les données OpenStreetMap et que vous travaillez sur une petite zone, il sera plus interessant et plus précis de travailler dans une projection locale (en France, la projection Lambert 93 est la projection officielle, métrique, qui couvre le territoire métropolitain).
• Si votre zone geographique est plus vaste que la france (et/ou si vous ne controlez pas le fond carto mais qu'il est issu d'un service externe) , il va etre difficile de trouver une projection qui soit précise sur un grand territoire. La plupart des services carto actuels utilisent cette projection monde EPSG:3857, Pseudo Mercator, qui déforme effectivement les surfaces, notamment près des pôles. Pour nos latitudes, les erreurs ne sont pas énormes. Le calcul de distance fait par ces services utilise souvent une formule précise pour calculer la distance, qui tient compte de l'ellipsoïde de la terre (cf. st_distanceSphere et st_distanceSpheroid, de PostGis).
Vous pourrez calculer des distances précises dans cette projection, si vous avez les bonnes coordonnées des points.
Nicolas
Hors ligne
#3 Fri 16 August 2013 12:13
- john_
- Juste Inscrit !
- Date d'inscription: 15 Aug 2013
- Messages: 3
Re: Choix du meilleur SRID pour mon utilisation
Merci pour votre réponse.
• Si vous contrôlez les données OpenStreetMap et que vous travaillez sur une petite zone, il sera plus interessant et plus précis de travailler dans une projection locale (en France, la projection Lambert 93 est la projection officielle, métrique, qui couvre le territoire métropolitain).
Pour l'instant je vais essayer de travailler sur toute la terre, si les résultats sont peut concluant je me contenterai de la France et j'utiliserai la projecion Lambert 93.
• Si votre zone geographique est plus vaste que la france (et/ou si vous ne controlez pas le fond carto mais qu'il est issu d'un service externe) , il va etre difficile de trouver une projection qui soit précise sur un grand territoire. La plupart des services carto actuels utilisent cette projection monde EPSG:3857, Pseudo Mercator, qui déforme effectivement les surfaces, notamment près des pôles. Pour nos latitudes, les erreurs ne sont pas énormes. Le calcul de distance fait par ces services utilise souvent une formule précise pour calculer la distance, qui tient compte de l'ellipsoïde de la terre (cf. st_distanceSphere et st_distanceSpheroid, de PostGis).
Vous pourrez calculer des distances précises dans cette projection, si vous avez les bonnes coordonnées des points.
Les données d'openstreetmap sont sur mon serveur donc je peux en faire ce que je veux.
J'aimerais estimer la précision de mes localisations, au moins avoir un ordre de grandeur m, km, années lumières, ...
Auriez vous une idée pour calculer la précision dans une ville proche du pole nord comme Tromsø en Norvège?
ps: Pous faire mes recherches sous PostgreSQL j'utilise la fonction ST_Buffer pour créer un buffer autour de mon point (ma géoloc) et je récupère tous les points dans cette zone avec la fonction ST_Intersects
Merci.
Cordialement,
John_
Hors ligne
#4 Sun 18 August 2013 11:41
- Nicolas Ribot
- Membre
- Lieu: Toulouse
- Date d'inscription: 9 Sep 2005
- Messages: 1554
Re: Choix du meilleur SRID pour mon utilisation
Concernant votre recherche de points, je vous invite plutot à utiliser la fonction st_dwithin (http://postgis.net/docs/manual-2.0/ST_DWithin.html).
C'est beaucoup plus performant que de passer par un buffer et st_intersects.
Elle supporte le type Geography (SRID=4326), que vous devriez utiliser pour le stockage et le traitement de vos données, vu que vous travaillez sur la terre entière.
Les calculs faits avec ce type d'objets sont précis car la forme de la terre est prise en compte. (http://postgis.net/docs/manual-2.0/usin … _Geography)
Concernant la précision de vos données, vous pouvez tester quelques points remarquables dont on trouve les coordonnées précises en WGS84 et regarder la différence avec vos données.
Nicolas
Hors ligne
#5 Mon 19 August 2013 13:41
- john_
- Juste Inscrit !
- Date d'inscription: 15 Aug 2013
- Messages: 3
Re: Choix du meilleur SRID pour mon utilisation
Concernant votre recherche de points, je vous invite plutot à utiliser la fonction st_dwithin (http://postgis.net/docs/manual-2.0/ST_DWithin.html).
C'est beaucoup plus performant que de passer par un buffer et st_intersects.
Ok je vais lire la documentation.
Elle supporte le type Geography (SRID=4326), que vous devriez utiliser pour le stockage et le traitement de vos données, vu que vous travaillez sur la terre entière.
Les calculs faits avec ce type d'objets sont précis car la forme de la terre est prise en compte. (http://postgis.net/docs/manual-2.0/usin … _Geography)
Si j'utilise ST_Transform pour passer mes données du SRID 3857 au SRID 4326 est ce que la conversion est parfaite (sans perte d'information)? Ca m'arrangerait de ne pas avoir à refaire l'export d'openstreetmap, une semaine de calcul la dernière fois
Concernant la précision de vos données, vous pouvez tester quelques points remarquables dont on trouve les coordonnées précises en WGS84 et regarder la différence avec vos données.
Ok, je vais tester ça.
Encore merci pour l'aide que vous m'apportez.
Dernière modification par john_ (Mon 19 August 2013 13:42)
Hors ligne