2010-05-13 3 views
0

J'ai une applet Java qui permet aux utilisateurs d'importer un fichier jpeg et world depuis le système local. L'utilisateur peut ensuite "cliquer" pour tracer des lignes sur l'image importée. Chaque extrémité de chaque ligne contient un ensemble de valeurs X/Y et Lat/Long. Le XY est un espace de coordonnées java standard, l'applet utilise un calcul de transformation affine avec le fichier world pour déterminer le lat/long pour chaque point du canevas. J'ai une exigence qui permet à un utilisateur de taper une distance dans un champ de texte et d'utiliser la touche fléchée pour tracer une ligne dans une certaine direction (haut, bas, gauche, droite) à partir d'un seul point sélectionné sur l'écran . Je sais comment déterminer le lat/long d'un point donné une source lat/long, distance, et roulement.Conversion de la latitude/longitude en coordonnées cartésiennes avec un fichier mondial et une image de la carte

Ainsi, un utilisateur tape "100" dans le champ de texte et appuie sur la touche fléchée droite. Une ligne doit être tracée à 100 pieds vers la droite à partir du point sélectionné.

Mon problème est que je ne sais pas comment convertir la distance (qui est en pieds) dans la distance en pixels. Cela me dirait alors où tracer le point.

+2

Puisque vous connaissez le lat/long de la destination, il semble que vous besoin d'appliquer l'inverse de votre transformée affine pour convertir de ce point géographique en un point dans l'espace pixel. Est-ce correct? – tcarobruce

Répondre

0

tcarobruce, Vous avez raison. L'algorithme de transformation inverse est ce dont j'avais besoin. Depuis que j'utilise Java, j'ai été capable de remplacer mon algorithme de transformation "fait maison" avec l'objet java.awt.AffineTransform qui a une fonction de transformation inverse.

Cela semble avoir résolu mon problème.

Merci.

0

Je suppose que vous êtes certain que vos utilisateurs téléchargent toujours une image raster dans la projection lat/lon wgs84? Dans ce cas, vous pouvez définir une transformation de coordonnées fixe.

Si vous considérez jamais numériser des images provenant d'autres sources avec d'autres projections, vous pouvez jeter un oeil à la bibliothèque GeoTools open source: http://www.geotools.org/

+0

Oui, il s'agit d'un environnement d'entreprise dans lequel nous avons un processus spécifique permettant aux utilisateurs de télécharger un fichier world et un fichier jpg correspondant. Merci pour le lien, j'ai vu cette API, alors qu'il semble que cela pourrait aider, je fais face à certaines bibliothèques héritées qui pourraient ne pas être exactement compatibles avec elle et j'espère éviter une refonte massive. –

Questions connexes