#1 Sun 12 December 2010 16:12
- freddy000
- Participant occasionnel
- Date d'inscription: 19 Nov 2010
- Messages: 11
cohabitation geotools geotoolkit
bonjour,
j'ai commencé a développer une petite application cartographique avec geotoolkit et là je voudrais avoir comme map un shape file en local, ca m'a semblé plus facile d'opter pour geotools
Code:
ShapefileDataStore store = new ShapefileDataStore(shapeURL); ...............etc
et quand j'importe le .jar gt2-api-2.3.0 mon application ne marche plus, c'est comme s'il y avait une sorte de conflict avec les .jars de geotoolkit.......
donc est il possible de les faire cohabiter sans que ca ne gène l'application, sinon quelqu'un aurait il une idée comment on crée un layer avec un shape file avec geotoolkit (ca manque encore de documentation)
Merci d'avance
Hors ligne
#2 Mon 13 December 2010 08:38
- Vincent Heurteaux
- Participant occasionnel
- Lieu: Montpellier
- Date d'inscription: 3 Oct 2006
- Messages: 41
- Site web
Re: cohabitation geotools geotoolkit
Bonjour Freddy000,
En gros il n'est pas possible de mixer les deux toolkits sur une même application, et en règle générale au sein d'un même serveur d'application.
Les deux projets ayant une histoire commune, ils nécessitent souvent des bibliothèques de même nom, mais qui comportent souvent des différences internes. Du coup le ClassLoader en charge d'appeler tel ou tel .jar, n'est pas en mesure de choisir ceux qui appartiennent à un projet ou à l'autre. C'est en particulier le cas pour toutes les bibliothèques qui font appel à JAI et JAI_imageIO.
Dans ton cas ça ne devrait pas être gênant car Geotoolkit possède toutes les fonctionnalités que Geotools est susceptible de t'apporter, et en règle générale, il est plus prudent pour ton projet, de ne dépendre que d'un seul toolkit, tu y gagneras en particulier sur les aspects liés à la maintenance de ton projet.
Hors ligne
#3 Mon 13 December 2010 20:18
- freddy000
- Participant occasionnel
- Date d'inscription: 19 Nov 2010
- Messages: 11
Re: cohabitation geotools geotoolkit
Bonjour Vincent,
Merci beaucoup pour votre explication c'est clair et détaillé, en fait je voulais utiliser un bout de code en geotools car celui destiné a faire la même tache en geotoolkit ne tournait pas , je vous le passe ca serait gentil d'y jeter un coup d'œil
Code:
java.net.URL pURL = new URL("file:c:\france.shapefiles\france_administrative.shp"); DataStore pDS = DataStoreFinder.getDataStore("url",pURL); Name pName = pDS.getNames().iterator().next(); FeatureCollection pFC = pDS.createSession(true).getFeatureCollection(QueryBuilder.all(pName)); MapLayer pLayer = MapBuilder.createFeatureLayer(pFC, RandomStyleFactory.createDefaultVectorStyle(pFC));
ca me génère l'erreur suivante
Code:
Exception in thread "main" java.lang.NullPointerException at projet1.projet1.main(projet1.java:107) Java Result: 1 BUILD SUCCESSFUL (total time: 5 seconds)
la ligne 107 c'est la ou je déclare le pName de type Name
merci
Dernière modification par freddy000 (Mon 13 December 2010 20:19)
Hors ligne
#4 Wed 15 December 2010 20:06
- Eclesia
- Participant actif
- Date d'inscription: 18 Apr 2007
- Messages: 59
Re: cohabitation geotools geotoolkit
La NullPointerException vient du fait que le datastore est null.
La documentation précise que DataStoreFinder peut retourner null s'il ne trouve aucun service capable de traiter tes parametres d'entrées
(cf : http://pending.geotoolkit.org/apidocs/o … inder.html )
ton url étant mal formé (ca devrait ressembler a ca :file://c:... si je me trompe pas)
étant donné qu'avec cette adresse le fichier n'existe pas, il n'a pas pu trouver de datastore.
Pour éviter les erreurs tu peux toujours faire new File("c:\...").toURI().toURL()
Dernière modification par Eclesia (Wed 15 December 2010 20:11)
Hors ligne
#5 Fri 17 December 2010 11:39
- freddy000
- Participant occasionnel
- Date d'inscription: 19 Nov 2010
- Messages: 11
Re: cohabitation geotools geotoolkit
Bonjour Eclesia ,
merci pour votre réponse , en effet mon URL etait mal formée et d'ailleurs je l'ai mis a jour
Code:
java.net.URL pURL = new URL("file:\\C:\\gadm_FRA_SHP\\FRA.shp");
j'étais passé par la création d'un new File.toURI.toURL et ca génère toujours la même erreurs
Hors ligne