IdentifiantMot de passe
Loading...
Mot de passe oublié ?Je m'inscris ! (gratuit)
Navigation

Inscrivez-vous gratuitement
pour pouvoir participer, suivre les réponses en temps réel, voter pour les messages, poser vos propres questions et recevoir la newsletter

Java Discussion :

Lire et extraire les données d'un ShapeFile avec Java


Sujet :

Java

Vue hybride

Message précédent Message précédent   Message suivant Message suivant
  1. #1
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 80
    Par défaut Lire et extraire les données d'un ShapeFile avec Java
    Bonjour a tous,
    Après plusieurs jour de recherche et de test pour pouvoir lire et extraire les données d'un fichier de forme (shapeFile)
    je suis arriver a lire le fichier et le stocké dans un ShapefileDataStore (avec la biblio geotools) :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
     
    String filePath  = "export_sig.shp";
    File file = new File(filePath);		
    ShapefileDataStore dataStore = new ShapefileDataStore(file.toURL());
    j'ai essayé plusieurs script trouvé sur internet comme :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    File inFile = new File("export_sig.shp");
     
    // Read
    DataStore inputDataStore = DataStoreFinder.getDataStore(
            Collections.singletonMap("url", inFile.toURI().toURL()));
     
    String inputTypeName = inputDataStore.getTypeNames()[0];
    SimpleFeatureType inputType = inputDataStore.getSchema(inputTypeName);
     
    FeatureSource<SimpleFeatureType, SimpleFeature>
            source = inputDataStore.getFeatureSource(inputTypeName);
     
    FeatureCollection<SimpleFeatureType, SimpleFeature>
            inputFeatureCollection = source.getFeatures();
    il me sort des erreur ainsi que je doit casté plusieur truc
    j'ai vérifier mes dépendance peut être que le problème viens d'eux :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
     
    <dependency>
                <groupId>org.geotools</groupId>
                <artifactId>gt-geojson</artifactId>
                <version>${geotools.version}</version>
            </dependency>
     
    		        <!-- https://mvnrepository.com/artifact/org.geotools/gt2-shapefile -->
    		<dependency>
    		    <groupId>org.geotools</groupId>
    		    <artifactId>gt2-shapefile</artifactId>
    		    <version>2.3.2</version>
     
    		</dependency>
    		<dependency>
    		    <groupId>org.geotools</groupId>
    		    <artifactId>gt-shapefile</artifactId>
    		    <version>19.0</version>		     
    		</dependency>
    		<dependency>
    		    <groupId>org.geotools</groupId>
    		    <artifactId>gt-swing</artifactId>
    		    <version>8.0</version>
    		</dependency>
    		<dependency>
    			<groupId>org.geotools</groupId>
    			<artifactId>gt-main</artifactId>
    			<version>19.0</version>
    		</dependency>
    ce que je veux récupérer de mon shapefile c'est des données (date, des ids, geometry ...) après je vais faire un contrôle sur eux et les injecté sur la BD, comme cette ligne :
    Nom : Sans titre.png
Affichages : 895
Taille : 18,4 Ko

    une des erreur afficher avec ce code :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    String filePath  = "export_sig.shp";
    		File file = new File(filePath);		
    		ShapefileDataStore dataStore = new ShapefileDataStore(file.toURL());				
    		SimpleFeatureCollection features = (SimpleFeatureCollection) dataStore.getFeatureSource().getFeatures();
    est :
    Code : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    3
    4
    5
    6
    7
    8
    9
    10
    11
    12
    13
    14
    15
    16
    17
    18
    19
    20
    21
    22
    23
    24
    25
    26
    27
    28
    29
    30
    31
    32
    33
    34
    35
    36
    37
    38
    39
    40
    41
    42
    43
    44
    45
    46
    47
    48
    49
    50
    51
    52
    53
    54
    55
    56
    57
    58
    59
    60
    61
    62
    63
    64
    65
    66
    67
    68
    69
    70
    71
    72
    73
    74
    75
    76
    77
    78
    79
    80
    81
    82
    83
    84
    85
    86
    87
    88
    89
    90
    91
    92
    93
    94
    95
    96
    97
    98
    99
    100
    101
    102
    103
    104
    105
    106
    107
    108
    109
    110
    111
    112
    113
    114
    115
    116
    117
    118
    119
    120
    121
    122
    123
    124
    125
    126
    127
    128
    129
    130
    131
    132
    133
    134
    135
    AVERTISSEMENT: ╔chec lors de l'initialisation d'un service de catÚgorie "CRSFactory". La cause est "ServiceConfigurationError: org (...) could not be instantiated".
    java.util.ServiceConfigurationError: org.opengis.referencing.crs.CRSFactory: Provider org.geotools.referencing.factory.ReferencingObjectFactory could not be instantiated
            at java.util.ServiceLoader.fail(ServiceLoader.java:232)
            at java.util.ServiceLoader.access$100(ServiceLoader.java:185)
            at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:384)
            at java.util.ServiceLoader$LazyIterator.next(ServiceLoader.java:404)
            at java.util.ServiceLoader$1.next(ServiceLoader.java:480)
            at org.geotools.factory.FactoryRegistry.scanForPlugins(FactoryRegistry.java:564)
            at org.geotools.factory.FactoryRegistry.safeScanForPlugins(FactoryRegistry.java:540)
            at org.geotools.factory.FactoryRegistry.getServiceProviders(FactoryRegistry.java:175)
            at org.geotools.factory.FactoryRegistry.getServiceProviders(FactoryRegistry.java:117)
            at org.geotools.factory.FactoryRegistry.getServiceProvider(FactoryRegistry.java:275)
            at org.geotools.factory.FactoryRegistry.getServiceProvider(FactoryRegistry.java:254)
            at org.geotools.factory.FactoryCreator.getServiceProvider(FactoryCreator.java:115)
            at org.geotools.referencing.FactoryFinder.getFactory(FactoryFinder.java:212)
            at org.geotools.referencing.FactoryFinder.getCRSFactory(FactoryFinder.java:322)
            at org.geotools.data.shapefile.prj.PrjFileReader.<init>(PrjFileReader.java:69)
            at org.geotools.data.shapefile.ShapefileDataStore.openPrjReader(ShapefileDataStore.java:535)
            at org.geotools.data.shapefile.ShapefileDataStore.readAttributes(ShapefileDataStore.java:676)
            at org.geotools.data.shapefile.ShapefileDataStore.getSchema(ShapefileDataStore.java:626)
            at org.geotools.data.AbstractFileDataStore.getFeatureSource(AbstractFileDataStore.java:69)
            at fr.brgm.cm.web.GeometriesController.importerResultShape(GeometriesController.java:232)
            at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
            at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:62)
            at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43)
            at java.lang.reflect.Method.invoke(Method.java:498)
            at org.springframework.expression.spel.support.ReflectiveMethodExecutor.execute(ReflectiveMethodExecutor.java:63)
            at org.springframework.expression.spel.ast.MethodReference.getValueInternal(MethodReference.java:122)
            at org.springframework.expression.spel.ast.MethodReference.access$100(MethodReference.java:44)
            at org.springframework.expression.spel.ast.MethodReference$MethodValueRef.getValue(MethodReference.java:258)
            at org.springframework.expression.spel.ast.CompoundExpression.getValueInternal(CompoundExpression.java:84)
            at org.springframework.expression.spel.ast.SpelNodeImpl.getTypedValue(SpelNodeImpl.java:114)
            at org.springframework.expression.spel.standard.SpelExpression.getValue(SpelExpression.java:105)
            at org.springframework.binding.expression.spel.SpringELExpression.getValue(SpringELExpression.java:84)
            at org.springframework.webflow.action.EvaluateAction.doExecute(EvaluateAction.java:75)
            at org.springframework.webflow.action.AbstractAction.execute(AbstractAction.java:188)
            at org.springframework.webflow.execution.AnnotatedAction.execute(AnnotatedAction.java:145)
            at org.springframework.webflow.execution.ActionExecutor.execute(ActionExecutor.java:51)
            at org.springframework.webflow.engine.support.ActionTransitionCriteria.test(ActionTransitionCriteria.java:82)
            at org.springframework.webflow.engine.support.TransitionCriteriaChain.test(TransitionCriteriaChain.java:68)
            at org.springframework.webflow.engine.Transition.canExecute(Transition.java:196)
            at org.springframework.webflow.engine.Transition.execute(Transition.java:212)
            at org.springframework.webflow.engine.impl.FlowExecutionImpl.execute(FlowExecutionImpl.java:395)
            at org.springframework.webflow.engine.impl.RequestControlContextImpl.execute(RequestControlContextImpl.java:214)
            at org.springframework.webflow.engine.TransitionableState.handleEvent(TransitionableState.java:116)
            at org.springframework.webflow.engine.Flow.handleEvent(Flow.java:547)
            at org.springframework.webflow.engine.impl.FlowExecutionImpl.handleEvent(FlowExecutionImpl.java:390)
            at org.springframework.webflow.engine.impl.RequestControlContextImpl.handleEvent(RequestControlContextImpl.java:210)
            at org.springframework.webflow.engine.ViewState.handleEvent(ViewState.java:231)
            at org.springframework.webflow.engine.ViewState.resume(ViewState.java:195)
            at org.springframework.webflow.engine.Flow.resume(Flow.java:537)
            at org.springframework.webflow.engine.impl.FlowExecutionImpl.resume(FlowExecutionImpl.java:259)
            at org.springframework.webflow.executor.FlowExecutorImpl.resumeExecution(FlowExecutorImpl.java:169)
            at org.springframework.webflow.mvc.servlet.FlowHandlerAdapter.handle(FlowHandlerAdapter.java:228)
            at org.springframework.webflow.mvc.servlet.FlowController.handleRequest(FlowController.java:174)
            at org.springframework.web.servlet.mvc.SimpleControllerHandlerAdapter.handle(SimpleControllerHandlerAdapter.java:50)
            at org.springframework.web.servlet.DispatcherServlet.doDispatch(DispatcherServlet.java:945)
            at org.springframework.web.servlet.DispatcherServlet.doService(DispatcherServlet.java:876)
            at org.springframework.web.servlet.FrameworkServlet.processRequest(FrameworkServlet.java:961)
            at org.springframework.web.servlet.FrameworkServlet.doGet(FrameworkServlet.java:852)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:621)
            at org.springframework.web.servlet.FrameworkServlet.service(FrameworkServlet.java:837)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:728)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:305)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
            at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:51)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
            at org.sitemesh.webapp.contentfilter.ContentBufferingFilter.bufferAndPostProcess(ContentBufferingFilter.java:169)
            at org.sitemesh.webapp.contentfilter.ContentBufferingFilter.doFilter(ContentBufferingFilter.java:126)
            at org.sitemesh.webapp.SiteMeshFilter.doFilter(SiteMeshFilter.java:120)
            at org.sitemesh.config.ConfigurableSiteMeshFilter.doFilter(ConfigurableSiteMeshFilter.java:163)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
            at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:330)
            at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.invoke(FilterSecurityInterceptor.java:118)
            at org.springframework.security.web.access.intercept.FilterSecurityInterceptor.doFilter(FilterSecurityInterceptor.java:84)
            at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
            at org.springframework.security.web.access.ExceptionTranslationFilter.doFilter(ExceptionTranslationFilter.java:113)
            at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
            at org.springframework.security.web.session.SessionManagementFilter.doFilter(SessionManagementFilter.java:103)
            at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
            at org.springframework.security.web.authentication.AnonymousAuthenticationFilter.doFilter(AnonymousAuthenticationFilter.java:113)
            at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
            at org.springframework.security.web.servletapi.SecurityContextHolderAwareRequestFilter.doFilter(SecurityContextHolderAwareRequestFilter.java:154)
            at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
            at org.springframework.security.web.savedrequest.RequestCacheAwareFilter.doFilter(RequestCacheAwareFilter.java:45)
            at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
            at org.springframework.security.web.authentication.AbstractAuthenticationProcessingFilter.doFilter(AbstractAuthenticationProcessingFilter.java:199)
            at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
            at org.jasig.cas.client.session.SingleSignOutFilter.doFilter(SingleSignOutFilter.java:76)
            at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
            at org.springframework.security.web.authentication.logout.LogoutFilter.doFilter(LogoutFilter.java:110)
            at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
            at org.springframework.security.web.context.request.async.WebAsyncManagerIntegrationFilter.doFilterInternal(WebAsyncManagerIntegrationFilter.java:50)
            at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
            at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
            at org.springframework.security.web.context.SecurityContextPersistenceFilter.doFilter(SecurityContextPersistenceFilter.java:87)
            at org.springframework.security.web.FilterChainProxy$VirtualFilterChain.doFilter(FilterChainProxy.java:342)
            at org.springframework.security.web.FilterChainProxy.doFilterInternal(FilterChainProxy.java:192)
            at org.springframework.security.web.FilterChainProxy.doFilter(FilterChainProxy.java:160)
            at org.springframework.web.filter.DelegatingFilterProxy.invokeDelegate(DelegatingFilterProxy.java:344)
            at org.springframework.web.filter.DelegatingFilterProxy.doFilter(DelegatingFilterProxy.java:261)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
            at org.springframework.web.filter.CharacterEncodingFilter.doFilterInternal(CharacterEncodingFilter.java:88)
            at org.springframework.web.filter.OncePerRequestFilter.doFilter(OncePerRequestFilter.java:107)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
            at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:502)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:171)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:100)
            at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:953)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:408)
            at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1041)
            at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:603)
            at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:310)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1149)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:624)
            at java.lang.Thread.run(Thread.java:748)
    Caused by: java.lang.NoSuchMethodError: org.geotools.util.WeakHashSet.<init>(Ljava/lang/Class;)V
            at org.geotools.util.CanonicalSet.<init>(CanonicalSet.java:68)
            at org.geotools.util.CanonicalSet.newInstance(CanonicalSet.java:81)
            at org.geotools.referencing.factory.ReferencingObjectFactory.<init>(ReferencingObjectFactory.java:115)
            at org.geotools.referencing.factory.ReferencingObjectFactory.<init>(ReferencingObjectFactory.java:97)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:62)
            at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
            at java.lang.reflect.Constructor.newInstance(Constructor.java:423)
            at java.lang.Class.newInstance(Class.java:442)
            at java.util.ServiceLoader$LazyIterator.nextService(ServiceLoader.java:380)
            ... 118 more
    je suis vraiment bloqué
    quelqu'un peut m'aidé svp

  2. #2
    Rédacteur/Modérateur
    Avatar de andry.aime
    Homme Profil pro
    Inscrit en
    Septembre 2007
    Messages
    8 391
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : Ile Maurice

    Informations forums :
    Inscription : Septembre 2007
    Messages : 8 391
    Par défaut
    Bonjour,

    Vérifie si tu n'as pas plusieurs versions d'une même librairie sur ton appli ou tu as la mauvaise version. Pourquoi utiliser la version 8.0 ici:
    Code xml : Sélectionner tout - Visualiser dans une fenêtre à part
    1
    2
    <artifactId>gt-swing</artifactId>
    		    <version>8.0</version>
    Je ne sais pas quel IDE tu utilises mais, vérifie les dépendances importées par ton pom.

    A+.

  3. #3
    Membre confirmé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2011
    Messages
    80
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Localisation : France, Indre et Loire (Centre)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels

    Informations forums :
    Inscription : Janvier 2011
    Messages : 80
    Par défaut
    Le module gt-swing contient des classes d'interface graphique et d'utilitaire basées sur la bibliothèque Java Swing.
    Son utilisation principale est de fournir les composants visuels
    on peut l'enlevé sans aucun problème
    pour les version je sais pas quoi choisir
    j'ai utilisé plusieurs version sans succès

  4. #4
    Membre éclairé
    Homme Profil pro
    Ingénieur développement logiciels
    Inscrit en
    Janvier 2007
    Messages
    697
    Détails du profil
    Informations personnelles :
    Sexe : Homme
    Âge : 38
    Localisation : France, Calvados (Basse Normandie)

    Informations professionnelles :
    Activité : Ingénieur développement logiciels
    Secteur : High Tech - Produits et services télécom et Internet

    Informations forums :
    Inscription : Janvier 2007
    Messages : 697
    Par défaut
    Je ne sais pas si tu as résolu ton soucis depuis le temps, mais comme dis précédemment, tu as à 99% un conflit parce que la même dépendances (pom et/ou class) est importée (de façon implicite et transitive) plusieurs fois avec des versions différences.
    Pour voir la liste des dépendances (et leurs versions) de ton projet, tu peux utiliser la commande suivante : "mvn dependency:tree". Probablement gt-referencing ou gt2-referencing est inclus 2 fois avec des versions différentes.
    Généralement il existe un BOM (!= POM) à importer qui permet de définir automatiquement toutes les versions des modules. Mais malheureusement dans le cas présent cela n'a pas l'air d'être le cas.
    Tu peux trouver ici : https://mvnrepository.com/artifact/org.geotools, la liste des versions disponibles. Après le plus simple serait de trouver un exemple de pom.xml (sur le site de geotool, ou autre) avec toute les bonnes versions des modules, par exempl : http://docs.geotools.org/latest/user...art/maven.html

    Aussi je notes que tu utilises des modules préfixés gt- et gt2, il y a-t-il une raison particulière à cela ? Je ne connais pas geotool, mais ne s'agit-il pas de 2 versions différences et incompatible de l'API ? Auquel cas pour corriger ton problème, il faudrait utiliser (si possible) que des module gt- ou que des modules gt2-. Tout en notant que bizarrement la plupart des modules gt- sont plus récent que les modules gt2-...

    J'espère t'avoir donnée des pistes pour résoudre ton problème.

Discussions similaires

  1. [XL-2016] Extraire les données GPS de photos avec une macro Excel
    Par Hugues411 dans le forum Macros et VBA Excel
    Réponses: 3
    Dernier message: 02/02/2016, 16h48
  2. Extraire les données de plusieurs tables [Talend-Java]
    Par ADBows dans le forum Développement de jobs
    Réponses: 2
    Dernier message: 18/08/2011, 00h53
  3. Réponses: 4
    Dernier message: 02/05/2010, 11h59
  4. Réponses: 12
    Dernier message: 18/07/2006, 19h51
  5. Pour extraire les données d'un fichier texte
    Par Floch dans le forum Access
    Réponses: 2
    Dernier message: 02/05/2006, 15h01

Partager

Partager
  • Envoyer la discussion sur Viadeo
  • Envoyer la discussion sur Twitter
  • Envoyer la discussion sur Google
  • Envoyer la discussion sur Facebook
  • Envoyer la discussion sur Digg
  • Envoyer la discussion sur Delicious
  • Envoyer la discussion sur MySpace
  • Envoyer la discussion sur Yahoo