Bonjour,
Je suis nouveau dans le développement de SIG. J'aimerais pouvoir me déplacer (gauche,droite,haut,bas) sur ma carte que j'ai ajouté dans un mapPane.
En effet, j'utilise geotools qui jusque là m'a permis d'ajouter une carte provenant d'un fichier .SHP ainsi qu'une succession de point conernant un déplacement sur la carte. J'ai également réussi à (dé)zoomer sur la carte mais maintenant j'aimerais pouvoir me déplacer sur la carte soit grâce à la souris, soit grâce à 4 boutons qui me déplace la carte d'un pas constant, le but étant de se déplacer d'une manière comme d'une autre.
J'ai déjà essayé pas mal de chose tel que ReferenceEnveloppe, mapPane.moveImage (me dit que mapPane.getVisibleRect est vide). C'est pour cela que je viens à vous, si toutes fois vous pouvez m'éclaircir mon problème.
Je vous joins également un bout de mon code afin que vous y compreniez plus.
Merci d'avance pour votre aide.
ajout du fichier .SHP dans le panel d'affichage :
Affichage du déplacement à partir de la liste des coordonnées :
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10 FileDataStore store = null; SimpleFeatureSource featureSource; store = FileDataStoreFinder.getDataStore(file); featureSource = store.getFeatureSource(); Style style = SLD.createSimpleStyle(featureSource.getSchema()); Layer layer = new FeatureLayer(featureSource, style); map = new MapContent(); map.addLayer(layer); frame.getMapPane().setMapContent(map);
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5
6
7
8
9
10
11
12 SimpleFeatureType lineType = DataUtilities.createType("LINE","geom:LineString,name:String"); SimpleFeatureBuilder featureBuilderLines = new SimpleFeatureBuilder(lineType); SimpleFeatureCollection collectionLines = FeatureCollections.newCollection(); GeometryFactory geoFactory = JTSFactoryFinder.getGeometryFactory(); LineString line = geoFactory.createLineString(listOfPoints); featureBuilderLines.add(line); SimpleFeature featureLine = featureBuilderLines.buildFeature(null); ((DefaultFeatureCollection) collectionLines).add(featureLine); Style lineStyle = SLD.createLineStyle(Color.RED, 2.0f); Layer layer = new FeatureLayer(collectionLines, lineStyle); map.addLayer(layer);
Partager