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 136 137 138 139 140 141 142 143 144 145
| /*
* To change this template, choose Tools | Templates
* and open the template in the editor.
*/
package projet1;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.LineString;
import com.vividsolutions.jts.geom.Point;
import java.math.BigDecimal;
import java.util.ArrayList;
import java.util.Collections;
import java.util.HashMap;
import java.util.List;
import java.util.Map;
import org.geotoolkit.data.FeatureCollection;
import org.geotoolkit.data.FeatureWriter;
import org.geotoolkit.data.memory.GenericMappingFeatureCollection;
import org.geotoolkit.data.memory.MemoryDataStore;
import org.geotoolkit.data.query.QueryBuilder;
import org.geotoolkit.feature.FeatureTypeBuilder;
import org.geotoolkit.referencing.CRS;
import org.opengis.feature.Feature;
import org.opengis.feature.simple.SimpleFeatureType;
import org.opengis.feature.type.PropertyDescriptor;
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.GeometryFactory;
import com.vividsolutions.jts.geom.Point;
import java.awt.BorderLayout;
import java.io.Serializable;
import java.net.URL;
import javax.swing.JFrame;
import javax.swing.JPanel;
import org.geotoolkit.data.DataStore;
import org.geotoolkit.data.DataStoreFinder;
import org.geotoolkit.data.DataUtilities;
import org.geotoolkit.data.FeatureCollection;
import org.geotoolkit.factory.FactoryFinder;
import org.geotoolkit.feature.FeatureTypeBuilder;
import org.geotoolkit.feature.simple.SimpleFeatureBuilder;
import org.geotoolkit.gui.swing.go2.JMap2D;
import org.geotoolkit.gui.swing.go2.control.JNavigationBar;
import org.geotoolkit.map.MapBuilder;
import org.geotoolkit.map.MapContext;
import org.geotoolkit.map.MapLayer;
import org.geotoolkit.referencing.crs.DefaultGeographicCRS;
import org.geotoolkit.style.MutableStyle;
import org.geotoolkit.style.MutableStyleFactory;
import org.geotoolkit.style.StyleConstants;
import org.geotoolkit.util.RandomStyleFactory;
import org.geotoolkit.wms.WebMapServer;
import org.geotoolkit.wms.map.WMSMapLayer;
import org.opengis.feature.simple.SimpleFeature;
import org.opengis.feature.simple.SimpleFeatureType;
import org.opengis.feature.type.Name;
public class projet1 {
/**
* @param args the command line arguments
*/
public static void main(String[] args)throws Exception {
//pour creer des geometries, points, lignes, polygons ...
final com.vividsolutions.jts.geom.GeometryFactory GF = new com.vividsolutions.jts.geom.GeometryFactory();
final org.geotoolkit.style.MutableStyleFactory MSF = (org.geotoolkit.style.MutableStyleFactory)FactoryFinder.getStyleFactory(null) ;
//on définit le modele de données
final org.geotoolkit.feature.FeatureTypeBuilder ftb = new org.geotoolkit.feature.FeatureTypeBuilder();
ftb.setName("MonModel");
//un attribut de type Point avec projection cartographique CRS:84 (longtitude/latitude)
ftb.add("geometry", Point.class, DefaultGeographicCRS.WGS84);
ftb.setDefaultGeometry("geometry");
final org.opengis.feature.simple.SimpleFeatureType type = ftb.buildSimpleFeatureType();
maconnexion c = new maconnexion();
String s = new String();
s = "id";
final org.geotoolkit.data.FeatureCollection collection = org.geotoolkit.data.DataUtilities.collection("id-col", type);
while (c.rs.next())
{
//creation de quelques valeurs
final org.geotoolkit.feature.simple.SimpleFeatureBuilder sfb = new org.geotoolkit.feature.simple.SimpleFeatureBuilder(type);
sfb.set("geometry", GF.createPoint(new com.vividsolutions.jts.geom.Coordinate(c.rs.getInt(1),c.rs.getInt(2))));
final org.opengis.feature.simple.SimpleFeature feature1 = sfb.buildFeature(s+"d");
//creation d'une collection de valeur
collection.add(feature1);
}
//creation une couche de donnée pour affichage, données + style
final org.geotoolkit.style.MutableStyle style = MSF.style(StyleConstants.DEFAULT_POINT_SYMBOLIZER);
final org.geotoolkit.map.MapLayer featureLayer = MapBuilder.createFeatureLayer(collection, style);
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));
//pMapCntx.layers().add(pLayer);
//JMap2DFrame.show(pMapCntx);
//ensemble des couches a afficher
final org.geotoolkit.map.MapContext context = org.geotoolkit.map.MapBuilder.createContext();
context.layers().add(featureLayer);
context.layers().add(pLayer);
//creation de la fenetre pour affichage
final org.geotoolkit.gui.swing.go2.JMap2D map = new JMap2D();
//map.setToolTipText("bonjour");
map.getContainer().setContext(context);
map.getCanvas().getController().setVisibleArea(context.getBounds());
final JNavigationBar bar = new JNavigationBar(map);
final JPanel panneau = new JPanel(new BorderLayout());
panneau.add(BorderLayout.NORTH,bar);
panneau.add(BorderLayout.CENTER,map);
final JFrame frm = new JFrame();
frm.setContentPane(panneau);
frm.setDefaultCloseOperation(JFrame.EXIT_ON_CLOSE);
frm.setSize(800, 600);
frm.setLocationRelativeTo(null);
frm.setVisible(true);
// context.layers().clear(); permet la suppression des layers
//featureLayer.setSelectable(true);
// featureLayer.setVisible(true);
// context.layers().add(featureLayer);
// Methods in org.geotoolkit.map with parameters of type LayerListener
//void MapLayer.addLayerListener(LayerListener listener)
}
} |
Partager