Suite

Afficher les références de coordonnées dans GeoTools ?

Afficher les références de coordonnées dans GeoTools ?


J'utilise cette bibliothèque pour terminer mon projet final et je dois dire que je ne connais pas les mondes des cartes. Ma question est de savoir si geotools a une méthode pour afficher automatiquement les références de coordonnées dans la carte, et comment l'utiliser ? Ce serait vraiment utile car je passe beaucoup de temps à essayer de le trouver sans succès. J'utilise l'exemple de démarrage rapide pour afficher un fichier de formes avec la carte du monde. L'utilisateur peut sélectionner une zone d'intérêt rectangulaire, puis l'application dessine la température de surface de la mer. La carte générée a besoin des références d'où sont positionnées car nous l'exportons vers une image png.

Un exemple de ce que je recherche sont les lignes bleues sur la carte ci-dessous.


Vous pouvez les dessiner en utilisant le module vector-grids et du code comme :

ReferencedEnvelope gridBounds = new ReferencedEnvelope( 110.0, 150.0, -45.0, -5.0, DefaultGeographicCRS.WGS84); Grille SimpleFeatureSource = Grids.createSquareGrid(gridBounds, 10.0);

Il existe une variété de grilles et d'options disponibles en fonction de vos besoins exacts qui sont décrits dans le didacticiel.


CARACTERISTIQUES de base¶

Définition des interfaces pour les concepts spatiaux clés et les structures de données

Prise en charge de la géométrie intégrée fournie par Java Topology Suite (JTS)

Filtres d'attributs et spatiaux utilisant la spécification de codage de filtre OGC

Une API d'accès aux données propre prenant en charge l'accès aux fonctionnalités, la prise en charge des transactions et le verrouillage entre les threads

Accédez aux données SIG dans de nombreux formats de fichiers et bases de données spatiales

Système de référence de coordonnées et prise en charge de la transformation

Travaillez avec une large gamme de projections cartographiques

filtrer et analyser les données en termes d'attributs spatiaux et non spatiaux

Un moteur de rendu sans état et à faible mémoire, particulièrement utile dans les environnements côté serveur.

composer et afficher des cartes avec un style complexe

extensions de fournisseur pour un contrôle précis des étiquettes de texte et du mélange des couleurs

Puissant schéma assisté technologie d'analyse utilisant XML Schema pour se lier au contenu GML

La technologie d'analyse / d'encodage est fournie avec des liaisons pour de nombreuses normes OGC, notamment GML, Filter, KML, SLD et SE.

Plugins GeoTools : système de plug-in ouvert permettant d'apprendre à la bibliothèque des formats supplémentaires

Plug-ins pour le projet ImageIO-EXT permettant à GeoTools de lire des formats raster supplémentaires à partir de GDAL

Fournir des capacités supplémentaires construites à l'aide des installations spatiales de la bibliothèque principale.

Les extensions fournissent un support graphique et réseau (pour trouver le chemin le plus court), la validation, un client de serveur de carte Web, des liaisons pour l'analyse et l'encodage XML et un brasseur de couleurs !

GeoTools fonctionne également dans le cadre d'une communauté plus large avec une zone de mise en scène utilisée pour encourager de nouveaux talents et promouvoir l'expérimentation.

Certains points forts sont la prise en charge du swing (utilisé dans nos didacticiels !), SWT, la prise en charge des processus locaux et Web, une symbologie supplémentaire, des formats de données supplémentaires, la génération de grilles et quelques implémentations de la géométrie ISO.


Andrae C, Fitzke J, Zipf A (ed) (2009) L'essentiel d'OpenGIS. Wichmann Verlag, Heidelberg, Allemagne

Behrens J, Androsov A, Babeyko AY, Harig S, Klaschka F, Mentrup L (2010) Une nouvelle approche multi-capteurs pour l'alerte précoce aux tsunamis assistée par simulation. Risques naturels et sciences du système terrestre 10 : 1085–1100. doi:10.5194/nhess-10-1085-2010

de Berg M, Cheong O, van Kreveld M, Overmars M (2000) Géométrie computationnelle. Springer, Berlin, Allemagne

Deegree (2010) Aperçu de la mise en œuvre. http://wiki.deegree.org/deegreeWiki/deegree3, [consulté le 27 août]

DEWS (2010) Système d'alerte précoce à distance. http://www.dews-online.org/, [consulté le 8 novembre]

Egenhofer MJ, Herring JR (1990) Catégorisation des relations topologiques binaires entre régions, lignes et points dans les bases de données géographiques. Rapport technique, département d'ingénierie de l'arpentage, Université du Maine, États-Unis

Egenhofer M. J., Mark D. M., Herring J.R., 1994. The 9-Intersection: Formalism And Its Use For Natural-Language Spatial Predicates. Centre national d'information et d'analyse géographiques, Rapport 94-1, États-Unis

Elsinghorst J (2010) Integration Heterogener Geodienste (Intégration de services géographiques hétérogènes). GIS Business 5/2010, pp. 46-51 [en allemand], abcverlag GmbH, Heidelberg, Allemagne

Fleischer J, Häner R, Herrnkind S, Kloth A, Kriegel U, Schwarting H, Wächter J (2010) Une plate-forme d'intégration pour les systèmes de capteurs hétérogènes dans GITEWS—Tsunami Service Bus. Risques naturels et sciences du système terrestre 10:641-646. doi:10.5194/nhess-10-1239-2010

GADM (2010) Ensemble de données sur les zones administratives mondiales version 1.0. http://www.gadm.org, [consulté le 27 août 2010]

Garnett J (2002) Validation spatiale—Références académiques. http://vwfs.refractions.net/docs/Spatial_Validation_Academic.pdf, [consulté le 27 août 2010]

Garnett J (2009) Point Set Theory et la matrice DE-9IM. Dans : Documentation du projet GeoTools. http://docs.codehaus.org/display/GEOTDOC/Point+Set+Theory+and+the+DE-9IM+Matrix, [consulté le 27 août 2010]

GeoTools (2010) La boîte à outils SIG Java Open Source. http://geotools.org/, [consulté le 27 août]

Hammitzsch M, Lendholt M (2009) Le démonstrateur national DEWS. Dans : Actes de la DEWS Midterm Conference, Potsdam, Allemagne, pp. 19-30. doi:10.2312/GFZ.DEWS.001

Hostmann M (2010) MobiGIS für die Schweiz (MobiGIS pour la Suisse). Dans : Geo Business News 2/2010, p3 [en allemand]. http://www.landmarcs.de/images/lm201002/landmarcs10_02.pdf, [consulté le 27 août 2010]

Hoyois P, Scheuren J-M, Below R, Guha-Sapir D (2007) Revue statistique annuelle des catastrophes : chiffres et tendances 2006. Rapport technique, CRED, Bruxelles, Belgique

ISO-3166 (2010) Codes pour la représentation des noms de pays et leurs subdivisions. Organisation internationale de normalisation. http://www.iso.org/iso/country_codes/, [consulté le 27 août]

Law G (1999) Subdivisions administratives des pays : une référence mondiale complète – 1900 à 1998. Mcfarland & Co Inc, Jefferson, Caroline du Nord, États-Unis

Nash E (2008) Profils d'application WPS pour les processus génériques et spécialisés. Actes des GI-Days, Universität Münster, Allemagne, pp. 69-79

OGC (2007) Service de traitement Web OpenGIS. Open Geospatial Consortium, Numéro de référence : OGC 05-007r7

OGC (2010) OpenGIS Implementation Standard for Geographic information—Simple feature access—Partie 1 : Architecture commune. Open Geospatial Consortium, Numéro de référence : OGC 06-103r4

Pendleton C (2010) Nouvelle application Bing Map : Cartes de santé Bing. Blog de la communauté Microsoft Bing, http://www.bing.com/community/blogs/maps/archive/2010/06/02/new-bing-map-app-bing-health-maps.aspx, [consulté le 27 août 2010 ]

Raape U, Teßmann S, Wytzisk A, Steinmetz T, Wnuk M, Hunold M, Strobl C, Stasch C, Walkowski AC, Meyer O, Jirka S (2010) Aide à la décision pour l'alerte précoce aux tsunamis en Indonésie : le rôle des normes OGC. Dans : Information géographique et cartographie pour la gestion des risques et des crises, Springer, Allemagne, pp. 233-247

Reichardt M (2010) Les services Web de géotraitement basés sur des normes ouvertes prennent en charge l'étude et la gestion des dangers et des risques. Géomatique, dangers naturels et risques, 1:2, 171-184. doi: 10.1080/19475701003643458

Setten W (2009) The Chorist Warning System (CHOR-WARN) Communication to Citizen, in case of an emergency, Actes de la DEWS Midterm Conference, Potsdam, Allemagne, pp. 91-95. doi:10.2312/GFZ.DEWS.001

UN-LOCODE (2010) Code des Nations Unies pour le commerce et les lieux de transport. Commission économique des Nations Unies pour l'Europe. http://www.unece.org/cefact/locode/, [consulté le 27 août]

UN-SALB (2010) Limites administratives du deuxième niveau. Groupe de travail des Nations Unies sur l'information géographique (UNGIWG). http://www.unsalb.org/, [consulté le 27 août]

US-DHS—Département de la sécurité intérieure des États-Unis (2002) Homeland Security Presidential Directive-3: Homeland Security Advisory System. http://www.dhs.gov/xabout/laws/gc_1214508631313.shtm, [consulté le 27 août 2010]

US-NGA—Agence nationale d'intelligence géospatiale des États-Unis (1990) Manuel technique DMA-8358.1 : Datums, Ellipsoids, Grids and Grid Reference Systems. http://earth-info.nga.mil/GandG/publications/tm8358.1/tr83581a.html, [consulté le 27 août 2010]

van Oosterom P, van Kreveld M (2006) Géo-information et géométrie computationnelle. Nederlandse Commission voor Geodesie, Delft, Pays-Bas


Afficher les références de coordonnées dans GeoTools ? - Systèmes d'information géographique

Lors de l'utilisation des méthodes de correspondance CoordinateReferenceSystem de cette classe ( equalsIgnoreMetadata(Object, Object) , lookupIdentifier(IdentifiedObject, boolean) , lookupEpsgCode(CoordinateReferenceSystem, boolean) , lookupIdentifier(IdentifiedObject, boolean) , lookupIdentifier from(Citation, CoordinateReferenceSystem, boolean) , boolean une base de données autre que celle officielle EPSG, il peut être conseillé de définir une tolérance de comparaison non nulle avec Hints.putSystemDefault(java.awt.RenderingHints.Key, Object) à l'aide de la clé Hints.COMPARISON_TOLERANCE. Une valeur de 10e-9 s'est avérée donner des résultats satisfaisants avec des définitions couramment trouvées dans les fichiers .prj accompagnant les shapefiles et les images géoréférencées.
Avertissement: la valeur de tolérance est utilisée dans toutes les comparaisons internes, cela changera également la façon dont les transformations mathématiques sont configurées. A utiliser avec précaution.

Résumé de la classe imbriquée

Résumé de la méthode

Méthodes héritées de la classe Object

Détails de la méthode

GetAuthorityFactory

Cette usine peut être utilisée comme une sorte d'usine à l'échelle du système pour toutes les autorités. Cependant, pour un comportement plus déterministe, envisagez d'utiliser une fabrique plus spécifique (telle que renvoyée par ReferencingFactoryFinder.getCRSAuthorityFactory(java.lang.String, org.geotools.util.factory.Hints) lorsque l'autorité est connue.

GetCoordinateOperationFactory

ObtenirVersion

GetSupportedCodes

S'il existe plus d'une fabrique pour l'autorité donnée, cette méthode fusionne l'ensemble de codes de chacune d'entre elles. Si une fabrique ne parvient pas à fournir un ensemble de codes pris en charge, cette fabrique particulière est ignorée. Veuillez être conscient des problèmes potentiels suivants :

  • S'il existe plusieurs bases de données EPSG (par exemple une base Access et une base PostgreSQL), alors cette méthode se connectera à toutes même si leur contenu est identique.
  • Si deux usines formatent leurs codes différemment (par exemple "4326" et "EPSG:4326" ), alors l'ensemble renvoyé contiendra beaucoup de codes synonymes.
  • Pour tout code c dans l'ensemble renvoyé, il n'y a aucune garantie que decode(c) utilisera la même usine d'autorité que celle qui a formaté c .
  • Cette méthode ne signale pas les problèmes de connexion car elle ne lève aucune exception. Les FactoryException s sont enregistrées en tant qu'avertissements et autrement ignorées.

Si un comportement plus déterministe est souhaité, considérez plutôt le code ci-dessous. Le code suivant exploite une seule fabrique, la "préférée".

GetSupportedAuthorities

Décoder

Les objets CRS créés par les appels précédents à cette méthode sont mis en cache dans un tampon à l'aide de références faibles. Les appels ultérieurs à cette méthode avec le même code d'autorité doivent être rapides, à moins que l'objet CRS n'ait fait l'objet d'un ramasse-miettes.

Décoder

Cet argument de méthode Valeur de l'indice Sens
vrai VRAI Tous les systèmes de référence de coordonnées sont forcés à l'ordre des axes (longitude, latitude).
faux nul Les systèmes de référence de coordonnées peuvent être forcés ou non à l'ordre des axes (longitude, latitude). Le comportement dépend des paramètres de l'utilisateur, par exemple la valeur de la propriété système.
FAUX Le forçage de l'ordre des axes ( longitude , latitude ) n'est pas autorisé, quelle que soit la valeur de la propriété système.

ParseWKT

GetEnvelope

Cette méthode récupère le domaine de validité associé au SCR donné. Seules les étendues géographiques du type polygone de délimitation sont prises en compte. Si aucun n'est trouvé, les cadres de délimitation géographiques sont utilisés comme solution de secours.

L'enveloppe retournée est exprimée en termes de SIR spécifié.

GetGeographicBoundingBox

Cette méthode récupère le domaine de validité associé au SCR donné. Seules les étendues géographiques du type de cadre de délimitation géographique sont prises en compte.

GetHorizontalCRS

GetProjectedCRS

GetMapProjection

GetVerticalCRS

GetTemporalCRS

ObtenirEllipsoïde

Est égal à Ignorer les métadonnées

IsTransformationRequis

  • la source ou la cible sont nulles
  • la source ou la cible sont un CRS générique, voir DefaultEngineeringCRS.isWildcard()
  • la source et la cible testent positivement à equalsIgnoreMetadata(Object, Object)
  • la transformation entre la source et la cible est néanmoins et l'identité, par exemple, le même CRS projeté basé sur un géographique qui a un axe rectiligne et inversé

VersSRS

  • EPSG:4326 - il s'agit du format habituel compris comme signifiant l'ordre forceXY avant WMS 1.3.0. Notez que l'ordre des axes est pas forcément ( longitude , latitude ), mais c'est le comportement commun que nous observons en pratique.
  • AUTO:43200 -
  • CRS:84 - similaire à DefaultGeographicCRS.WGS84 (formellement défini par CRSAuthorityFactory)
  • ogc:uri. - compris pour correspondre à l'ordre des axes de la base de données EPSG.
  • Texte bien connu (WKT)

VersSRS

Certains services Web plus anciens sont incapables de gérer la syntaxe ogc:uri complète, définissez simple sur true pour forcer une représentation très simple basée uniquement sur la partie de code.

LookupIdentifiant

Cette méthode pratique délègue son travail à IdentifiedObjectFinder . Envisagez d'utiliser le dernier si plus de contrôle est souhaité, par exemple si la recherche doit être effectuée uniquement sur certaines usines d'autorité au lieu de toutes les onez enregistrées, ou si l'objet identifié complet est souhaité au lieu de seulement son identifiant.

LookupIdentifiant

  • si fullScan est true , alors cette méthode analyse les usines à la recherche d'un objet égal, en ignorant les métadonnées, à l'objet donné. S'il en trouve un, son identifiant est renvoyé.
  • Sinon (si fullScan vaut false ou si aucun identifiant n'a été trouvé à l'étape précédente), cette méthode renvoie null .

RechercheEpsgCode

FindMathTransform

FindMathTransform

GetTransforms

FindMathTransform

Transformer

N'utilisez pas cette méthode s'il y a beaucoup d'enveloppes à transformer. Cette méthode est fournie pour plus de commodité lorsqu'il n'y a qu'une seule enveloppe à transformer entre les SCR qui ne peut pas être connue à l'avance. S'il y en a beaucoup ou si les SCR sont limités à des valeurs connues, obtenez l'opération de coordonnées ou la transformation mathématique une fois pour toutes et invoquez l'une des méthodes ci-dessous à la place (sauf si les performances ne sont pas un problème).

Transformer

Notez que cette méthode ne peut pas gérer le cas où l'enveloppe contient le pôle Nord ou Sud, ou lorsqu'elle croise la longitude ±180°, car les transformations mathématiques ne portent pas d'informations suffisantes. Pour une transformation d'enveloppe plus robuste, utilisez plutôt transform(CoordinateOperation, Envelope).

Transformer

Cette méthode peut traiter le cas où l'enveloppe contient le pôle Nord ou Sud, ou lorsqu'elle croise la longitude ±180°.

Transformer

Notez que cette méthode ne peut pas gérer le cas où le rectangle contient le pôle Nord ou Sud, ou lorsqu'il croise la longitude ±180°, car les transformations mathématiques ne portent pas d'informations suffisantes. Pour une transformation rectangulaire plus robuste, utilisez plutôt transform(CoordinateOperation, Rectangle2D, Rectangle2D).

Transformer

Cette méthode peut gérer le cas où le rectangle contient le pôle Nord ou Sud, ou lorsqu'il croise la longitude ±180°.

Réinitialiser

NettoyageThreadLocals

ObtenirOrdreAxe

ObtenirOrdreAxe

le useBaseGeoCRS Le paramètre est utilisé pour contrôler le comportement des crs projetés. Lorsqu'il est réglé sur vrai la comparaison utilisera le système de coordonnées de l'objet crs géographique sous-jacent pour la comparaison. Lorsqu'il est défini sur false, la comparaison utilisera le système de coordonnées du crs projeté lui-même.

Par défaut, cette méthode imprime tous les objets énumérés en tant que texte bien connu . Cependant, cette méthode peut imprimer différents types d'informations si une option telle que -factories , -codes ou -bursawolfs est fournie.

Usage: java org.geotools.referencing.CRS [options] [codes]
Options :

-autorité = nom
Utilise la fabrique d'autorités spécifiée, par exemple "EPSG" . Le nom de l'autorité peut être l'une des autorités répertoriées par l'option -factories. Si cette option n'est pas spécifiée, la valeur par défaut est toutes les usines.

-codes bursawolfs
Répertorie les paramètres Bursa-Wolf pour les objets CRS ou datum spécifiés. Pour certaines transformations, plusieurs jeux de paramètres Bursa-Wolf sont disponibles. Le format standard Well Known Text n'imprime que ce qui ressemble au "principal". Cette option affiche tous les paramètres Bursa-Wolf dans un tableau pour un objet donné.

-codes
Répertorie tous les codes d'autorité disponibles. Utilisez l'option -authority si la liste doit être limitée à une seule autorité.

-couleurs
Activez la coloration syntaxique sur le terminal compatible ANSI X3.64 (aka ECMA-48 et ISO/IEC 6429). Cette option essaie de mettre en évidence la plupart des éléments pertinents pour la méthode equalsIgnoreMetadata, avec l'ajout de paramètres Bursa-Wolf.

-encoding = jeu de caractères
Définit l'encodage de la console pour cette sortie d'application. Cette valeur n'a aucun impact sur les données, mais peut améliorer la qualité de sortie. Ce n'est pas nécessaire sur un terminal Linux utilisant l'encodage UTF-8 (astuce : la police terminus donne de bons résultats).

-dépendances
Répertorie les dépendances de la fabrique d'autorités sous forme d'arborescence.

-des usines
Répertorie toutes les usines d'autorité CRS disponibles.

-forcexy
Forcer l'ordre des axes « longitude d'abord ».

-aider
Imprime la liste des options.

-locale = nom
Formate les textes dans les paramètres régionaux spécifiés.

-opérations sourceCRS cibleCRS
Imprime toutes les opérations de coordonnées disponibles entre une paire de CRS. Cette option n'imprime que les opérations explicitement définies dans une base de données comme EPSG. Il y a parfois beaucoup d'opérations de ce type, et parfois aucune (auquel cas cette option n'affiche rien - elle n'essaie pas de trouver une opération par elle-même).

-transformer sourceCRS cibleCRS
Imprime la transformation mathématique préférée entre une paire de SCR. A la différence de l'option "-operations", cette option ne sélectionne qu'une seule opération (généralement la plus précise), la déduisant si aucune n'a été explicitement spécifiée dans la base de données.

CRS EPSG:4181 EPSG:4326 CRS:84 AUTO:42001,30,0
Imprime le CRS "Luxembourg 1930", le CRS "WGS 84" (de la base de données EPSG), le CRS ""WGS84" (de la spécification Web Map Service) et une projection UTM au format WKT.

CRS -autorité=EPSG 4181 4326
Imprime les CRS "Luxembourg 1930" et "WGS 84", en ne regardant que dans la base de données EPSG (il n'est donc pas nécessaire de préfixer les codes avec "EPSG").

CRS-couleurs EPSG:7411
Imprime le SCR "NTF (Paris) / Lambert zone II + NGF Lallemand" avec la coloration syntaxique activée.

CRS -bursawolfs EPSG:4230
Imprime trois ensembles de paramètres Bursa-Wolf pour un CRS basé sur "European Datum 1950".

CRS -autorité=EPSG -opérations 4230 4326
Imprime toutes les opérations déclarées dans la base de données EPSG de "ED50" à "WGS 84" CRS géographique. Notez que pour cette paire particulière de CRS, il y a près de 40 opérations déclarées dans la base de données EPSG. Cette méthode n'imprime que ceux que Geotools peut gérer.

CRS -transformer EPSG:4230 EPSG:4326
Imprime la transformation mathématique que Geotools utiliserait par défaut pour la transformation des coordonnées de "ED50" à "WGS 84".


Vérifier vos résultats

Avec cette configuration, nous pouvons tester les résultats. La sortie devrait ressembler à ceci :

Pour vérifier les données, nous pouvons utiliser The World Coordinate Converter sur les données d'entrée et comparer les résultats.


Une image floue se dessine.

La première réunion a fait un assez bon travail pour faire connaître les désirs et les exigences de chacun. Une liste non organisée peut être trouvée dans les journaux IRC, un aperçu de niveau légèrement supérieur peut être trouvé dans les notes. Maintenant, un jour plus tard et avec beaucoup de réflexion, une synthèse au niveau de 50 000 pieds peut être produite.

Notre état actuel est que nous désirons m-La capacité dimensionnelle et certains aspects de l'installation de couverture devront peut-être être revus à cet égard. Par exemple, ISO 19111 fournit des interfaces standard pour les dimensions spatio-temporelles uniquement. Cependant, ISO 19111 est extensible et rien ne nous empêche d'ajouter une classe SpectralCS (pour référencer une longueur d'onde dans un spectre) si nous le souhaitons, mais un tel ajout serait non standard. Nous devons également décider si c'est la bonne chose à faire d'un point de vue conceptuel.

Cependant, même une norme ISO 19111 étendue peut être insuffisante pour une représentation adéquate des axes dans un espace de dimension d'échantillon (le terme "dimension d'échantillon" provient de la spécification de couverture de grille OGC héritée. Une dimension d'échantillon est une bande dans une image. Ainsi, la "dimension d'échantillon" est distincte de "dimensions spatiotemporelles"). Il est possible que l'ISO 19123 soit un peu en deçà de ces problèmes d'axe. L'éditeur de spécifications de couverture de grille OGC hérité en est conscient et a soumis une proposition pour ISO 19123 avec une meilleure prise en charge des axes. Sa proposition est disponible dans le dossier GeoAPI "pending" sous les packages com.owsx (une traduction ISO 19123 plus directe en Java apparaît dans les packages org.opengis.coverage).

Il est devenu évident que pour m-Activer Geotools de manière dimensionnelle, nous devrons peut-être modifier le modèle de persistance ( GridCoverageExchange ). De plus, nous avons pris conscience de la nécessité d'un m-Extension dimensionnelle à un modèle d'exécution différée, un peu comme celui de JAI. Pour une couverture 3D implémentée comme un empilement de couvertures 2D, le mécanisme JAI peut être suffisant. Il en va de même pour les couvertures 4D implémentées sous la forme d'une pile de couvertures 3D, qui se cascade en piles de couvertures 2D, etc.


Moteurs de rendu

Geotools a deux implémentations de rendu :

  • LiteRenderer - un moteur de rendu « sans état », particulièrement utile dans les environnements côté serveur. Principales caractéristiques : simplicité du code et faible empreinte mémoire, mais c'est plus rapide que J2D uniquement pour le premier rendu de carte.
  • J2D - un moteur de rendu « avec état » avec des optimisations pour le taux de mise à jour, idéal pour les affichages interactifs côté client. C'est beaucoup plus complexe mais prend en charge la reprojection des coordonnées à la volée, la mise à jour rapide par décimation intelligente des données et la mise en cache de la mémoire.

Afficher les références de coordonnées dans GeoTools ? - Systèmes d'information géographique

Les couvertures de grille sont généralement bidimensionnelles. Cependant, leur enveloppe peut avoir plus de deux dimensions. Par exemple, une image de télédétection peut n'être valide que sur une certaine plage de temps (le temps de passage du satellite au-dessus de la zone observée). Les enveloppes pour une telle couverture de grille peuvent avoir trois dimensions : les deux habituelles (étendue horizontale le long de x et y ), et une troisième pour l'heure de début et l'heure de fin (étendue temporelle le long de t ). Cependant, la plage de grille pour tous les extra-dimensions doit avoir une taille non supérieure à 1. En d'autres termes, un GridCoverage2D peut être une tranche dans une couverture de grille en 3 dimensions. Chaque tranche peut avoir une largeur et une hauteur arbitraires (comme toute image bidimensionnelle), mais seulement une profondeur de voxel (un "voxel" est un pixel tridimensionnel).

Remarque sur la sérialisation :
Parce qu'il est sérialisable, GridCoverage2D peut être inclus comme argument de méthode ou comme type de retour dans Remote Method Invocation (RMI). Cependant, les données de pixels ne sont pas envoyées pendant la sérialisation. Au lieu de cela, les données d'image sont transmises "à la demande" en utilisant des communications par socket. Ce mécanisme est implémenté à l'aide de la classe JAI SerializableRenderedImage. Alors que la sérialisation (généralement côté serveur) devrait fonctionner sur J2SE 1.4 et versions ultérieures, la désérialisation (généralement côté client) des instances GridCoverage2D nécessite J2SE 1.5.


Afficher les références de coordonnées dans GeoTools ? - Systèmes d'information géographique

La classe publique Renderer étend java.lang.Object implémente Renderer2D

Un moteur de rendu pour dessiner des objets cartographiques dans un Graphics2D . Un moteur de rendu nouvellement construit est initialement vide. Pour faire apparaître quelque chose, RenderedLayer s doit être ajouté à l'aide de l'une des méthodes addLayer(. ). Le contenu visuel dépend de la sous-classe RenderedLayer. Il peut s'agir d'une isoligne ( RenderedGeometries ), d'une image de télédétection ( RenderedGridCoverage ), d'un ensemble de marques arbitraires ( RenderedMarks ), d'une échelle de carte ( RenderedMapScale ), etc.

Version : $Id : Renderer.java 17890 2006-02-06 08:46:14Z desruisseaux $ Auteur : Martin Desruisseaux

Résumé du champ
java.awt.RenderingHints protégé astuces
Obsolète. Un ensemble de conseils de rendu.
protégé java.beans.PropertyChangeSupport les auditeurs
Obsolète. Les auditeurs doivent être informés de tout changement dans les propriétés de cette couche.
Résumé du constructeur
Renderer (propriétaire de java.awt.Component)
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D .
Résumé de la méthode
annuler addLayer (Calque RenderedLayer)
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#add .
annuler addPropertyChangeListener (écouteur java.beans.PropertyChangeListener)
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#addPropertyChangeListener .
annuler addPropertyChangeListener (java.lang.String propertyName, java.beans.PropertyChangeListener écouteur)
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#addPropertyChangeListener .
annuler disposer ()
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#dispose .
javax.swing.Action getAction (événement GeoMouseEvent)
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#getAction .
Système de coordonnées getCoordinateSystem ()
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#getObjectiveCRS .
entier getLayerCount ()
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#getGraphics .
Couche Rendue[] getLayers ()
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#getGraphics .
java.util.Locale getLocale ()
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#getLocale .
java.lang.String getName (java.util.Locale locale)
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#getTitle .
Type d'image getOffscreenBuffered (float zOrder)
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#getOffscreenBuffered .
java.awt.geom.Rectangle2D getPreferredArea ()
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#getEnvelope2D .
java.awt.geom.Dimension2D getPreferredPixelSize ()
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#getTypicalCellDimension .
java.lang.Object getRenderingHint (clé java.awt.RenderingHints.Key)
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#getRenderingHint .
flotter obtenirEchelle ()
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#getScale .
java.lang.String getToolTipText (événement GeoMouseEvent)
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#getToolTipText .
annuler peinture (graphe java.awt.Graphics2D, zoom java.awt.geom.AffineTransform, java.awt.Rectangle zoomableBounds)
Obsolète. Utilisez plutôt de la peinture (Graphics2D, Rectangle, AffineTransform).
annuler peinture (graphe java.awt.Graphics2D, java.awt.Rectangle zoomableBounds, java.awt.geom.AffineTransform zoom)
Obsolète. Utilisez plutôt paint(Graphics2D,Rectangle,AffineTransform,boolean).
annuler peinture (graphe java.awt.Graphics2D, java.awt.Rectangle zoomableBounds, java.awt.geom.AffineTransform zoom, boolean isPrinting)
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#paint .
annuler removeAllLayers ()
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#removeAll .
annuler removeLayer (Calque RenderedLayer)
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#remove .
annuler removePropertyChangeListener (écouteur java.beans.PropertyChangeListener)
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#removePropertyChangeListener .
annuler removePropertyChangeListener (java.lang.String propertyName, java.beans.PropertyChangeListener écouteur)
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#removePropertyChangeListener .
annuler setCoordinateSystem (CoordinateSystem cs)
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#setObjectiveCRS .
annuler setOffscreenBuffered (float inférieur, flottant supérieur, type ImageType)
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#setOffscreenBuffered .
annuler setRenderingHint (clé java.awt.RenderingHints.Key, valeur java.lang.Object)
Obsolète. Remplacé par org.geotools.display.canvas.BufferedCanvas2D#setRenderingHint .
java.lang.String toString ()
Obsolète. Renvoie une représentation sous forme de chaîne de ce moteur de rendu et de tous ses RenderedLayer .
Méthodes héritées de la classe java.lang.Object
cloner, égaliser, finaliser, getClass, hashCode, notifier, notifierTout, attendre, attendre, attendre

Astuces

Voir aussi : Hints.FINEST_RESOLUTION , Hints.REQUIRED_RESOLUTION , Hints.COORDINATE_TRANSFORMATION_FACTORY , Hints.PREFETCH , RenderingHints.KEY_RENDERING , RenderingHints.KEY_COLOR_RENDERING , RenderingHints.

Les auditeurs

Rendu

Construisez un nouveau moteur de rendu pour le composant spécifié.

Paramètres : propriétaire - Le widget qui possède ce moteur de rendu, ou null s'il n'y en a pas.

Détails de la méthode

ObtenirNom

Renvoie le nom de ce moteur de rendu. L'implémentation par défaut renvoie le titre de la fenêtre qui contient le volet de la carte.

Paramètres : locale - La locale souhaitée, ou null pour une locale par défaut. Renvoie : le nom de ce moteur de rendu, ou null s'il n'y en a pas. Voir aussi : getLocale() , Component.getName() , RenderedLayer.getName(java.util.Locale)

GetLocale

Retourne aux paramètres régionaux pour ce moteur de rendu. Le moteur de rendu héritera de la locale de son Component , s'il en a une. Sinon, un paramètre régional par défaut sera renvoyé.

Voir aussi : Component.getLocale() , JComponent.getDefaultLocale() , Locale.getDefault()

GetCoordinateSystem

Renvoie le système de coordonnées de la vue. Il s'agit du système de coordonnées du "monde réel" utilisé pour afficher tous les RenderedLayer . Notez que les données sous-jacentes dans RenderedLayer s n'ont pas besoin d'être dans ce système de coordonnées : les transformations seront effectuées à la volée selon les besoins au moment du rendu.

Renvoie : Le système de coordonnées à deux dimensions utilisé pour l'affichage.

SetCoordinateSystem

Définissez le système de coordonnées de la vue. Il s'agit du système de coordonnées du "monde réel" à utiliser pour afficher tous les RenderedLayer . Les couches sont notifiées du changement de système de coordonnées avec RenderedLayer.setCoordinateSystem(org.geotools.cs.CoordinateSystem) .

Paramètres : cs - Le système de coordonnées de la vue. Si le système de coordonnées spécifié a plus de deux dimensions, il doit s'agir d'un CompoundCoordinateSystem avec un headCS à deux dimensions. Génère : org.opengis.referencing.operation.TransformException - Si cs ne peut pas être réduit à un système de coordonnées à deux dimensions, ou si les données ne peuvent pas être transformées pour une autre raison.

GetPreferredArea

Renvoie un cadre de délimitation qui entoure complètement la zone préférée de tous les calques, visible ou non. Ce cadre de délimitation doit être représentatif de la zone géographique à dessiner. Les coordonnées sont exprimées dans le système de coordonnées de ce moteur de rendu.

Renvoie : La zone englobante calculée à partir des données disponibles, ou null si cette zone ne peut pas être calculée.

GetPreferredPixelSize

Renvoie la taille de pixel préférée dans les coordonnées du "monde réel". Pour les calques d'image, il s'agit de la taille des pixels de l'image. Pour d'autres types de couches, la "taille de pixel" doit être comprise comme une dimension représentative de la résolution de la couche. Cette méthode appelle RenderedLayer.getPreferredPixelSize() pour chaque calque et renvoie la résolution la plus fine.

Renvoie : la taille de pixel préférée dans les coordonnées du "monde réel" (dans le système de coordonnées de ce moteur de rendu) ou null si aucun calque n'a fourni une taille de pixel préférée. Tâche : À FAIRE : les transformations doivent utiliser MathTransform.derivative(. ) à la place, mais il n'est pas encore implémenté pour les projections.

GetScale

Renvoie le facteur d'échelle, ou Float.NaN si l'échelle est inconnue. Le facteur d'échelle est généralement inférieur à 1. Par exemple, pour une échelle 1:1000, le facteur d'échelle sera de 0,001. Ce facteur d'échelle prend en compte la taille physique du dispositif de rendu (par exemple la taille de l'écran) si de telles informations sont disponibles. Notez que cette échelle ne peut pas être plus précise que les informations fournies par le système sous-jacent.

Renvoie : Le facteur d'échelle de rendu sous forme de nombre entre 0 et 1, ou Float.NaN . See Also: RenderingContext.getScale()

AddLayer

Add a new layer to this renderer. A Renderer do not draw anything as long as at least one layer hasn't be added. A RenderedLayer can be anything like an isobath, a remote sensing image, city locations, map scale, etc. The drawing order (relative to other layers) is determined by the z-order property. A RenderedLayer object can be added to only one Renderer object.

Parameters: layer - Layer to add to this Renderer . This method call will be ignored if layer has already been added to this Renderer . Throws: java.lang.IllegalArgumentException - If layer has already been added to an other Renderer , or if the layer can't be added for some other reason. See Also: removeLayer(org.geotools.renderer.j2d.RenderedLayer) , removeAllLayers() , getLayers() , getLayerCount()

RemoveLayer

Remove a layer from this renderer. Note that if the layer is going to be added back to the same renderer later, then it is more efficient to invoke RenderedLayer.setVisible (false) .

Parameters: layer - The layer to remove. This method call will be ignored if layer has already been removed from this Renderer . Throws: java.lang.IllegalArgumentException - If layer is owned by an other Renderer than this . See Also: addLayer(org.geotools.renderer.j2d.RenderedLayer) , removeAllLayers() , getLayers() , getLayerCount()

RemoveAllLayers

Remove all layers from this renderer.

GetLayers

Returns all registered layers. The returned array is sorted in increasing z-order: element at index 0 contains the first layer to be drawn.

Returns: The sorted array of layers. May have a 0 length, but will never be null . Change to this array, will not affect this Renderer . See Also: addLayer(org.geotools.renderer.j2d.RenderedLayer) , removeLayer(org.geotools.renderer.j2d.RenderedLayer) , removeAllLayers() , getLayerCount()

GetLayerCount

Returns the number of layers in this renderer.

GetRenderingHint

Parameters: key - The hint key (e.g. Hints.FINEST_RESOLUTION ). Returns: The hint value for the specified key, or null if there is no hint for the specified key. See Also: Hints.FINEST_RESOLUTION , Hints.REQUIRED_RESOLUTION , Hints.COORDINATE_TRANSFORMATION_FACTORY , Hints.PREFETCH , RenderingHints.KEY_RENDERING , RenderingHints.KEY_COLOR_RENDERING , RenderingHints.KEY_INTERPOLATION

SetRenderingHint

Add a rendering hint. Hints provides optional information used by some rendering code.

Parameters: key - The hint key (e.g. Hints.FINEST_RESOLUTION ). value - The hint value. A null value remove the hint. See Also: Hints.FINEST_RESOLUTION , Hints.REQUIRED_RESOLUTION , Hints.COORDINATE_TRANSFORMATION_FACTORY , Hints.PREFETCH , RenderingHints.KEY_RENDERING , RenderingHints.KEY_COLOR_RENDERING , RenderingHints.KEY_INTERPOLATION

GetOffscreenBuffered

Returns the offscreen buffer type for the given z-order. This is the value of the type argument given to the last call to setOffscreenBuffered(. ) for a range containing zOrder .

Parameters: zOrder - The z-order to query. Returns: One of ImageType.NONE , ImageType.VOLATILE or ImageType.BUFFERED enumeration.

SetOffscreenBuffered

Enable or disable the use of offscreen buffer for all layers in the given range of z-orders. When enabled, all layers in the given range will be rendered once in an offscreen buffer (for example an VolatileImage ) the image will then been reused as much as possible. The offscreen buffer may be invalidate at any time by some external event (including a call to any of RenderedLayer.repaint() methods) and will be recreated as needed. Using offscreen buffer for background layers that do not change often (e.g. a background map) help to make the GUI more responsive to frequent changes in foreground layers (e.g. a glass pane with highlighted selections).

An arbitrary amount of ranges can be specified. Each distinct range will use its own offscreen buffer. This means that if this method is invoked twice for enabling buffering in overlapping range of z-values, then the union of the two ranges will shares the same offscreen image.

Parameters: lower - The lower z-order, inclusive. upper - The upper z-order, inclusive. type - ImageType.VOLATILE for enabling offscreen buffering for the specified range, or ImageType.NONE for disabling it.

Paint

Paint this Renderer and all visible layers it contains. This method invokes RenderedLayer.paint(org.geotools.renderer.j2d.RenderingContext) for each layer.

Parameters: graph - The graphics handler. zoom - The zoom (usually provided by ZoomPane.zoom . zoomableBounds - The bounds of drawing area (usually provided by ZoomPane.getZoomableBounds(java.awt.Rectangle) ).

Paint

Paint this Renderer and all visible layers it contains.

Specified by: paint in interface Renderer2D Parameters: graph - The graphics handler to draw to. zoomableBounds - The bounds of the output area in output units (usually pixels). The upper left corner is (0,0) in most cases. However, a different value is allowed if some widget area must be preserved, for example a margin on the left and top size for painting a graduation. zoom - A transform which converts "World coordinates" to output coordinates. This transform will be concatenated to the graphics transform (as of graphics. transform (transform) ) before the rendering take place.

Paint

Paint this Renderer and all visible layers it contains. This method invokes RenderedLayer.paint(org.geotools.renderer.j2d.RenderingContext) for each layer.

Parameters: graph - The graphics handler to draw to. zoomableBounds - The bounds of the output area in output units (usually pixels). Those bounds are usually provided by ZoomPane.getZoomableBounds(java.awt.Rectangle) ). zoom - A transform which converts "World coordinates" to output coordinates. This transform is usually provided by ZoomPane.zoom . isPrinting - true if the map is printed instead of painted on screen. When printing, layers like RenderedGridCoverage should block until all data are available instead of painting only available data and invokes RenderedLayer.repaint() later.

GetToolTipText

Returns the string to be used as the tooltip for a given mouse event. This method queries registered layers in decreasing z-order until one is found to returns a non-null string. Note: This method is not a commited part of the API. It may moves elsewhere in a future version.

Parameters: event - The mouse event. Returns: The tool tip text, or null if there is no tool tip for the given mouse location.

GetAction

Returns the action to be used for a given mouse event. This method queries registered layers in decreasing z-order until one is found to returns a non-null action. Note: This method is not a commited part of the API. It may moves elsewhere in a future version.

Parameters: event - The mouse event. Returns: The action, or null if there is no action for the given mouve event.

AddPropertyChangeListener

Add a property change listener to the listener list. The listener is registered for all properties. For example, adding or removing layers may fire a "preferredArea" change events.

Parameters: listener - The property change listener to be added

AddPropertyChangeListener

Add a PropertyChangeListener for a specific property. The listener will be invoked only when that specific property changes.

Parameters: propertyName - The name of the property to listen on. listener - The PropertyChangeListener to be added.

RemovePropertyChangeListener

Remove a property change listener from the listener list. This removes a PropertyChangeListener that was registered for all properties.

Parameters: listener - The property change listener to be removed

RemovePropertyChangeListener

Remove a PropertyChangeListener for a specific property.

Parameters: propertyName - The name of the property that was listened on. listener - The PropertyChangeListener to be removed.

Dispose

Provides a hint that a renderer will no longer be accessed from a reference in user space. The results are equivalent to those that occur when the program loses its last reference to this renderer, the garbage collector discovers this, and finalize is called. This can be used as a hint in situations where waiting for garbage collection would be overly conservative.


GeoTools: An android phone application in geology

GeoTools is an Android application that can carry out several tasks essential in geological field studies. By employing the accelerometer in the Android phone, the application turns the handset into a pocket transit compass by which users can measure directions, strike and dip of a bedding plane, or trend and plunge of a fold. The application integrates functionalities of photo taking, videotaping, audio recording, and note writing with GPS coordinates to track the location at which each datum was taken. A time-stamped file name is shared by the various types of data taken at the same location. Data collected at different locations are named in a chronological sequence. At the end of each set of operations, GeoTools also automatically generates an XML file to summarize the characteristics of data being collected corresponding to a specific location. In this way, GeoTools allows geologists to use a multimedia approach to document their field observations with a clear data organization scheme in one handy gadget.

Points forts

► The application makes the Android phone a digital field assistant. ► The application can measure the strike and dip of a plane. ► The application can record multimedia data. ► GPS coordinates are used to index the recorded data. ► Time stamps are used to facilitate the post-trip data sorting and correlation.


Voir la vidéo: ArcGIS Astuce 05: Afficher 2 types de coordonnées dans 2 axes