Bonjour,

2012/10/11 polo <[email protected]>:
> Bonjour,
>
> Dans le projet que j'ai en cours actuellement, je me sert de données
> géographiques. Ces données sont en EPSG:4326 ce qui correspond au WGS84
> (systèmes mondial commun en latitudes - longitudes) or les données par
> défaut dans les application de cartographie en ligne type openlayer et
> leaflet, sont en EPSG 900913.
>
> Voici donc mon problème, je me sert de FLoppyForms (add-on geodjango)
> permettant de saisir des données géographiques et d'intégrer cela dans
> un formulaire. Quand je récupère ces données, je remarque qu'elles sont
> en EPSG:900913 que je dois ensuite transformer en EPSG:4326.
>
> (snip)
>
> pointWGS84 = point.transform(4326)

transform() ne clone pas l'objet mais applique la transformation sur
place. Pour récupérer un nouvel objet, il faut passer clone=True.

https://docs.djangoproject.com/en/dev/ref/contrib/gis/geos/#django.contrib.gis.geos.GEOSGeometry.transform

D'autre part tu peux passer le srid voulu directement dans la
définition du formulaire :

import floppyforms as forms

class GeoForm(forms.Form):
    geom = forms.gis.PointField(srid=4326)

Avec ça, form.cleaned_data['geom'] devrait contenir le point en WGS84
sans qu'il y ait besoin de jouer avec les transformations.
_______________________________________________
django mailing list
[email protected]
http://lists.afpy.org/mailman/listinfo/django

Répondre à