Bonjour,
Je suis débutant et je bute sur un problème qui est probablement trivial.
J'utilise l'API IGN Raster via le client Java de GeoTools qui est un client WMS qui fonctionne avec l'IGN.
Je souhaite sur la base de certains critères :
- déterminer la bonne enveloppe en mètres projection Lambert 94 (EPSG:2154)
- appeler l'API pour génération d'une carte au format PNG qui sera ensuite imprimée
Je dispose des coodonnées long, lat en mètres qui sont correctes et que je vérifie via le Géoportail.
Sur le Géoportail, je cale mon échelle par exemple 1:2500 et mon point est centré.
Maintenant, je voudrais calculer une enveloppe en mètres autour de ce point, je dispose des paramètres suivants:
- width de ma carte PNG
- height de ma carte PNG
- scale : ici 2500
- DPI : peut être 300, mais j'ai pris 90
J'ai noté les éléments suivants à travers mes recherches:
- WMS insititue une taille de pixel de 0,28 mm
- l'IGN utilise un DPI de 90
Je note qu'en utilisant un DPI de 90 je tombe bien sur les résolutions définies dans le tableau de la documentation de l'API.
Je n'arrive pas à obtenir la même carte au sens fonctionnel, c'est à dire avec la même emprise géographique, la même surface couverte de terrain.
J'obtiens des cartes qui ont une emprise nettement plus grande, et donc à une échelle très supérieure que celle que je visais.
J'ai poussé le vice jusqu'à reprendre un width et un height de l'image rendu dans l'interface du Geoportail.
Je ne vois pas ou est mon problème.
Voici mon calcul de l'enveloppe :
double inches_per_meter = 39.37;
double resolutionValue = scale /(inches_per_meter * dpi);
double half_width_meter = (width * resolutionValue) / 2.0;
double half_height_meter = (height * resolutionValue) / 2.0;
double minX = longitude-(half_width_meter);
double minY = latitude-(half_height_meter);
double maxX = longitude+(half_width_meter);
double maxY = latitude+(half_height_meter);
Pouvez-vous m'aider ?
Cordialement.
Partager