Yes, it does. I used http://www.naturalearthdata.com/downloads/50m-cultural-vectors/.
Am Mi., 22. Apr. 2020 um 17:15 Uhr schrieb Ian Turton <ijtur...@gmail.com>: > Does your shapefile have a .prj file? It's worth testing with say the > states.shp file from GeoServer or the Natural Earth datasets. > > Ian > > On Wed, 22 Apr 2020 at 16:05, Jonas Schrottenbaum via GeoTools-GT2-Users < > geotools-gt2-users@lists.sourceforge.net> wrote: > >> Hello, >> >> i managed to get an e4 application with geotools 20.5 and also the swt >> module on 20.5 to run. But i still get exceptions when adding shapefiles or >> wms-layers to the map. >> The next step will be an attempt to upgrade the swt module version by >> version. Before that i would like to be able to display a shapefile layer >> and a wms layer on the same mappane, without problems, as a proof of >> concept. >> >> When adding a shapefile layer, i get the exception enclosed in >> exception1.txt. >> >> When adding a wms layer i get the exception enclosed in exception2.txt. >> >> Part code: >> @PostConstruct >> public void postConstruct(Composite parent, IEclipseContext context) { >> handleImages(); >> MapContent content = new MapContent(); >> SashForm sashForm = new SashForm(parent, SWT.HORIZONTAL | SWT.NULL); >> Composite mainComposite = sashForm; >> MapLayerComposite mapLayerTable = new >> MapLayerComposite(mainComposite, SWT.BORDER); >> mapPane = new SwtMapPane(mainComposite, SWT.BORDER | >> SWT.NO_BACKGROUND); >> mapPane.setMapContent(content); >> mapLayerTable.setMapPane(mapPane); >> sashForm.setWeights(new int[] { 1, 3 }); >> >> mapPane.setBackground(Display.getCurrent().getSystemColor(SWT.COLOR_WHITE)); >> StreamingRenderer renderer = new StreamingRenderer(); >> mapPane.setRenderer(renderer); >> context.set(SwtMapPane.class, mapPane); >> } >> >> Import shapefile code: >> @Execute >> public void execute(SwtMapPane mapPane) { >> Display display = Display.getCurrent(); >> Shell shell = new Shell(display); >> File file = JFileDataStoreChooser.showOpenFile(new String[] { "*.shp" >> }, shell); >> try { >> if (file != null && file.exists()) { >> MapContent mapContent = mapPane.getMapContent(); >> FileDataStore store = FileDataStoreFinder.getDataStore(file); >> SimpleFeatureSource featureSource = store.getFeatureSource(); >> Style style = Utils.createStyle(file, featureSource); >> Layer layer = new FeatureLayer(featureSource, style); >> //Add viewport line here >> mapContent.addLayer(layer); >> mapPane.redraw(); >> } >> ... >> } >> >> Import WMS code: >> @Execute >> public void execute(SwtMapPane mapPane) { >> WebMapServer wms = null; >> try { >> wms = new WebMapServer(new URL(" >> http://ows.mundialis.de/services/service?")); >> } catch ... >> } >> WMSCapabilities capabilities = wms.getCapabilities(); >> MapContent mapContent = mapPane.getMapContent(); >> WMSLayer layer = new WMSLayer(wms, >> capabilities.getLayerList().get(1)); >> //Add viewport line here >> mapContent.addLayer(displayLayer); >> mapPane.redraw(); >> } >> >> I noticed that the SwtMapPane::getDisplayArea method (which is called >> here: at org.geotools.swt.SwtMapPane.setCrs(SwtMapPane.java:428)) returns >> a ReferencedEnvelope where the crs is null, because the viewport of the >> mapcontent is still null. >> So i thought i need to initialize it somewhere somehow, but this is not >> shown in any tutorial i think. So maybe i'm just missing a simple line in >> the part code? >> >> I found out that adding the line >> mapContent.getViewport().setBounds(layer.getBounds()); in the shapefile/wms >> code as indicated by the comments is a quick fix for the exception, but not >> a solution because it just works for one layer. >> >> When only using shapefiles, as soon as a second one is added (from the >> same example dataset so a assume same crs) the bounds of the first one are >> overwritten by the second one and if they happen to be samller, the borders >> of the first shapefile are not displayed correctly anymore. >> And if i try to combine both, there are obviously major problems, because >> of, i assume, different crs and so on. >> When trying to display a wms layer on top of a shapefile layer, the wms >> layer is stretched and as soon as i try to change anything, like visibility >> i get an exception (enclosed in exception3.txt) and the layers won't render >> again. >> Same when trying to display a shapefile layer on top of a wmslayer, i >> also get an exception (enclosed in exception4.txt). But those are expected, >> as my "fix" only takes one layer into account. >> >> So the final question is: What am i missing to avoid those "sourceCRS >> can't be null" exceptions and what do i have to do to correctly overlay >> multiple different layers like shapefile and WMS? >> And should i follow the developers guide when trying to update the swt >> module and talk to the dev mailing list and get the contributers license >> and so on? >> >> Best regards >> Jones >> >> >> _______________________________________________ >> GeoTools-GT2-Users mailing list >> GeoTools-GT2-Users@lists.sourceforge.net >> https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users >> > > > -- > Ian Turton >
_______________________________________________ GeoTools-GT2-Users mailing list GeoTools-GT2-Users@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/geotools-gt2-users