Я использовал Netbeans и GeoTools для программирования графического интерфейса для отображения нескольких шейп-файлов в одном JmapFrame. Я использовал следующий код, но я не знаю, когда он выполняется, он отображает только один файл shapefile.Svp, кто-то может мне помочь, я жду ваших ответов.JMapframe отображает только один файл формы
import com.vividsolutions.jts.geom.Coordinate;
import com.vividsolutions.jts.geom.Geometry;
import java.io.File;
import org.geotools.data.FeatureSource;
import org.geotools.data.FileDataStore;
import org.geotools.data.FileDataStoreFinder;
import org.geotools.data.simple.SimpleFeatureCollection;
import org.geotools.data.simple.SimpleFeatureIterator;
import org.geotools.map.DefaultMapContext;
import org.geotools.map.MapContext;
import org.geotools.swing.JMapFrame;
import org.geotools.swing.data.JFileDataStoreChooser;
import org.opengis.feature.simple.SimpleFeature;
/**
*
* @author Brahim
*/
class ImportVecteur2
{
private JMapFrame fenMap;
private MapContext mapContext;
ImportVecteur2(JMapFrame fenMap)
{
//this.mapContext = mapContext;
this.fenMap = fenMap;
}
@SuppressWarnings("static-access")
public void chercheAfficheVecteur() //throws Exception
{
try
{
File file = JFileDataStoreChooser.showOpenFile("shp", null);
if (file == null)
{
return;
}
FileDataStore store = FileDataStoreFinder.getDataStore(file);
FeatureSource featureSource = store.getFeatureSource();
//get vertices of file
// Create a map context and add our shapefile to it
mapContext = new DefaultMapContext();
mapContext.addLayer(featureSource, null);
// Now display the map
fenMap.enableLayerTable(true);
fenMap.setMapContext(mapContext);
fenMap.setVisible(true);
}
Благодарим за ответ, я хочу наложить шейп-файл в тот же Jframe, но каждый раз, когда я добавляю следующий шейп-файл, первый шейп-файл исчезает. – LB82
большое спасибо мой друг. Теперь я хочу манипулировать слоями и их функциями (каждого шайф-файла). Пожалуйста, я жду вашего ответа. – LB82
Если это решит вашу проблему, пожалуйста, поддержите и примите ответ. Тогда вам нужно задать новый вопрос. –