GeoTools 18.1 выбрасывает нулевой указатель, используя JMapFrame - PullRequest
0 голосов
/ 04 мая 2018

Используя приведенный ниже код (который я в основном получил с сайта GeoTools), я получаю NullPointer.
Для справки я использовал URL ссылки OGC для WMS 1.3

public static void main(String[] args) throws IOException, ServiceException {

    String[] mList = {"http://metaspatial.net/cgi-bin/ogc-wms.xml"};
    URL capabilitiesURL = WMSChooser.showChooseWMS(Arrays.asList(mList) );
    if( capabilitiesURL == null ){
        System.exit(0); // canceled
    }
    WebMapServer wms = new WebMapServer( capabilitiesURL );        

    List<org.geotools.data.ows.Layer> wmsLayers = WMSLayerChooser.showSelectLayer( wms );
    if( wmsLayers == null ){
        JOptionPane.showMessageDialog(null, "Could not connect - check url");
        System.exit(0);
    }
    MapContent mapcontent = new MapContent();
    mapcontent.setTitle( wms.getCapabilities().getService().getTitle() );

    for( org.geotools.data.ows.Layer wmsLayer : wmsLayers ){
      WMSLayer displayLayer = new WMSLayer(wms, wmsLayer );
      mapcontent.addLayer(displayLayer);
    }
    // Now display the map
    JMapFrame.showMap(mapcontent);
}

Трассировка стека говорит это:

WARNING: Starting schema with ServiceExceptionReport element.
Exception in thread "main" java.lang.NullPointerException
    at org.geotools.map.WMSCoverageReader.reference(WMSCoverageReader.java:432)
    at org.geotools.map.WMSCoverageReader.updateBounds(WMSCoverageReader.java:402)
    at org.geotools.map.WMSCoverageReader.addLayer(WMSCoverageReader.java:196)
    at org.geotools.map.WMSCoverageReader.<init>(WMSCoverageReader.java:126)
    at org.geotools.map.WMSLayer.<init>(WMSLayer.java:81)
    at javagisviewer.JavaGisViewer.main(JavaGisViewer.java:50)

Я использую Netbeans 8.2 с Java 1.8u131 (не maven) Я избавился от следующих файлов JAR в соответствии с QuickStart (http://docs.geotools.org/latest/userguide/tutorial/quickstart/netbeans.html), я также удалил GDAL JAR.

gt-arcgrid-18.1.jar
gt-arcsde-18.1.jar
gt-arcsde-common-18.1.jar
gt-epsg-hsql-18.1.jar
gt-epsg-oracle-18.1.jar
gt-epsg-postgresql-18.1.jar
gt-epsg-wkt-18.1.jar
gt-imageio-ext-gdal-18.1.jar
gt-jdbc-db2-18.1.jar
gt-jdbc-h2-18.1.jar
gt-jdbc-mysql-18.1.jar
gt-jdbc-oracle-18.1.jar

Похоже, что отсутствует ссылка на координаты (srs / crs)?
Я не знаю, куда идти отсюда

1 Ответ

0 голосов
/ 05 мая 2018

Для меня код работает отлично! Таким образом, у вас, вероятно, есть проблема с банкой, как вы ожидаете. Вот почему мы рекомендуем пользователям GeoTools использовать Maven, чтобы такого рода проблемы не возникали.

Ваша проблема в том, что вы удалили все 4 jar-файлов epsg, а не только 3 из них, как указано в документации. Если вы добавите gt-epsg-wkt-18.1.jar обратно в ваш проект, все будет хорошо.

...