2010-04-16 19 views
3

J'essaie d'utiliser JXMapViewer (from swingx-ws) avec Open Street Maps. Je me demandais s'il serait possible d'afficher les mosaïques de la carte dans JXMapViewer en se basant sur le cap, plutôt que sur Nord vers le haut. Par exemple, les systèmes de navigation GPS de voiture normale vous permettent de le faire.JXMapViewer change l'orientation en Heading Up

J'ai parcouru la documentation et il ne semble pas y avoir de moyen simple de le faire. Y at-il quelque chose d'autre qui accomplit cela, en plus de JXMapViewer?

Répondre

3

Peu importe, j'ai trouvé une solution. Voici comment je l'ai fait (si quelqu'un est intéressé):

J'ai sous-classé JXMapViewer, et remplacer la méthode de peinture. Dans la méthode de peinture, le contenu du JPanel est converti en une image tamponnée qui est ensuite pivotée selon un angle, puis peinte sur le dessus du panneau.

donc super.paint() -> BufferedImage-> applique une affineTransformation à cela-> dessine la nouvelle image.

Bien sûr, vous devrez également remplacer les méthodes convertGeoPositionToPoint et convertPointToGeoPosition en tenant compte du fait que l'image est pivotée.