|
|||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |
See:
Description
Class Summary | |
GeoMouseEvent | An event which indicates that a mouse action occurred in a map component. |
Hints | Deprecated. Replaced by the set of hints in org.geotools.display.canvas.AbstractCanvas as part
of the port of J2D-renderer to the new GO-1 based API. |
ImageType | Deprecated. Replaced by org.geotools.display.canvas.ImageType . |
LegendPosition | Position of a legend relative to the widget's bounds. |
MarkIterator | Provides the mechanism for RenderedGridMarks layer to return the appearance of
their marks. |
MouseCoordinateFormat | Formateurs des coordonn?es point?es par le curseur de la souris. |
RenderedGeometries | A layer for a GeometryCollection object. |
RenderedGridCoverage | A layer for rendering a grid coverage. |
RenderedGridMarks | Renderer grid coverage data as marks. |
RenderedLayer | Deprecated. Replaced by org.geotools.display.canvas.GraphicPrimitive2D as part of the
port of J2D-renderer to the new GO-1 based API. |
RenderedLayerFactory | A factory creating RenderedLayer s from Feature s and Style s. |
RenderedLegend | Base class for legends painted at fixed location in the widget area. |
RenderedMapScale | A map scale in linear units (for example kilometres) to be painted over others layers. |
RenderedMarks | A set of marks and/or labels to be rendered. |
Renderer | Deprecated. Replaced by org.geotools.display.canvas.BufferedCanvas2D as part of the port
of J2D-renderer to the new GO-1 based API. |
RenderingContext | Deprecated. Replaced by org.geotools.display.canvas.RenderingContext as part of the port
of J2D-renderer to the new GO-1 based API. |
SLDRenderedGeometries | A RenderedGeometries layer that can process styles (will use device space coordinates for style rendering) |
StyledMapRenderer | A renderer for rendering . |
StyledMark | |
StyledShapePainter | A simple class that knows how to paint a Shape object onto a Graphic given a Style2D. |
TransformedShape | Apply an arbitrary AffineTransform on a Shape . |
Couches ? afficher sur une carte ? l'aide de Java2D.
Ces couches peuvent ?tre des points indiquant les positions des stations,
des fl?ches de courants, des ellipses de mar?es, des images satellitaires,
des courbes de pressions, l'?chelle de la carte, des fronti?res g?opolitiques,
des villes, etc. Comme cette biblioth?que ne peut pas embrasser toutes les
?tendues des possibilit?s, les quelques classes qu'elle propose sont con?ues
de fa?on ? faciliter autant que possible la t?che du programmeur qui voudrait
les ?tendre. Le fonctionnement de ce paquet pr?sente quelques similitudes
avec les composantes AWT, qui servent ? construire une interface utilisateur.
Pour mieux comprendre le fonctionnement de ce paquet, il est utile de faire
un parall?le entre celui-ci et AWT. Cette documentation suppose que le
lecteur est familier avec le paquet java.awt
. Une attention
toute particuli?re devrait ?tre apport?e aux syst?mes de coordonn?es des
objets Graphics2D
.
Rappel de quelques notions de AWT |
Une application fen?tr?e contient une liste de composantes
formant l'interface utilisateur. Chaque type de composante (bouton, barre de
d?filement, etc.) est repr?sent?e par une classe sp?cialis?e (Button
,
Scrollbar
, etc.) qui d?rive obligatoirement de la classe
Component
. Quand le syst?me a d?termin? qu'il faut redessiner une
composante, il appelle automatiquement la m?thode paint(...)
de celle-ci.
Aux m?thodes paint(...)
de chacune des composantes, le syst?me transmet
un m?me objet Graphics2D
temporaire qu'il aura pr?alablement cr??
et configur? comme suit:
Origine (0,0) des axes: | Coin sup?rieur gauche de l'?cran ou du papier d'imprimante. |
Direction des axes: | Les x croissent vers la droite et les y vers le bas. |
Unit?s des axes: | Les pixels (sorties ? l'?cran) ou environ 1/72 de pouce (sorties ? l'imprimante). |
?paisseur des lignes: | Un pixel (sorties ? l'?cran) ou environ 1/72 de pouce (sorties ? l'imprimante). |
Graphics2D
lors du tra?age
des composantes AWT
Cette configuration convient tr?s bien ? l'?criture de texte.
Ainsi, un texte de 12 unit?s de haut aura une hauteur de 12 pixels ? l'?cran
ou de 1/6 de pouces ? l'impression. Les m?thodes paint(...)
peuvent changer temporairement la configuration de Graphics2D
lors d'un tra?age, mais doivent le remettre dans son ?tat initial (tableau 1)
lorsqu'elles se terminent.
Notions de org.geotools.renderer.j2d
calqu?es sur celles de AWT |
Un objet Renderer
peut
contenir une liste de couches repr?sentant les informations que l'on place
sur une carte. Chaque type de couche (stations, ?chelle de la carte, etc.)
est repr?sent? par une classe sp?cialis?e (RenderedMarks
,
RenderedMapScale
, etc.) qui d?rive obligatoirement
de la classe RenderedLayer
. Quand le syst?me
a d?termin? qu'il faut redessiner une couche, il appelle automatiquement
la m?thode paint(...)
de celle-ci. Aux m?thodes paint(...)
de chacune des couches, le syst?me transmet un m?me objet Graphics2D
temporaire qu'il aura pr?alablement cr?? et configur? comme suit:
Origine (0,0) des axes: | D?pend de la projection cartographique en cours. Souvent en dehors de la r?gion visible de la carte. |
Direction des axes: | Les x croissent vers la droite et les y vers le haut, comme en g?om?trie. |
Unit?s des axes: | Habituellement en m?tres sur le terrain (et non en m?tres sur l'?cran!), on en degr?s de longitude/latitude. |
?paisseur des lignes: | D?pend de la r?solution de la carte. Peut ?tre de l'ordre de 50 m?tres par exemple. |
Graphics2D
lors du tra?age
des couches d'une carte
Cette configuration convient tr?s bien au tra?age de couches
cartographiques. Elle permet de travailler avec les dimensions r?elles des constructions
sans se soucier du facteur d'?chelle. Toutefois, elle ne convient pas du tout ? l'?criture
de texte. Par exemple, un texte de 12 unit?s de haut sera interpr?t? comme ayant une
hauteur de 12 m?tres. Pour une carte d'?chelle 1:50 000, des lettres de 12 m?tres
appara?tront ? l'?cran comme un point de dimension infime. Le programmeur peut
changer temporairement la configuration de Graphics2D
(par exemple
pour ?crire du texte), mais doit le remettre dans son ?tat initial (tableau 2)
lorsqu'il aura termin?.
Rappel de quelques notions sur les transformations affines |
Pour convertir en pixels des coordonn?es exprim?es selon un syst?me
d'unit?s quelconque, Java2D utilise une transformation affine repr?sent?e par
la classe AffineTransform
. En gros, une transformation affine
est une matrice 3×3. En pla?ant dans cette matrice les bons coefficients, on
peut obtenir n'importe quelles combinaisons d'?chelles, translations, rotations et
cisaillements. Dans notre cas particulier, nous utilisons cette matrice pour
convertir en pixels des coordonn?es exprim?es en m?tres.
La classe AffineTransform
fournit un ensemble de
m?thodes permettant d'appliquer des transformations sur cette matrice sans n?cessairement
conna?tre les math?matiques sous-jacentes. Par exemple la m?thode rotate(...)
modifiera les termes de la matrice 3×3 pour y ajouter l'effet d'une rotation d'un
angle quelconque. Notons au passage une identit? qui se r?v?lent parfois pratique:
et sont invariants sous rotations.
En l'absence de rotation ou de cisaillement, les termes m01 et m10 sont nuls. Restent alors les termes m00 et m11, qui nous indiquent l'?chelle de la carte telle qu'appliqu?e par la transformation affine. Dans cette situation simplifi?e on obtient donc les relations suivantes:
= m00 = AffineTransform.getScaleX()
= m11 = AffineTransform.getScaleY()
|
|||||||||||
PREV PACKAGE NEXT PACKAGE | FRAMES NO FRAMES |