GeoTools

OSGeo

Wednesday, July 27, 2016

Copyright Headers in Source Code Files


OSGeo has now received legal advice on copyright headers in source code files. This advice is summarised here for the benefit of all projects:
  • Copyright headers in source code files are not required to enforce copyright.
  • Works still under copyright when the Berne Convention was adopted (1992 in the United States) are protected under this convention.
  • Works created after the Berne Convention was adopted are also protected.
  • There is no need to include a copyright header for a source code file created or modified after the Berne Convention was adopted. A modified source code file is a new work.
  • Source code files created before the adoption of the Berne Convention and not modified since its adoption should include a copyright header with the dates of creation and modification. These dates support the assertion that these files are covered by the Berne Convention.
  • Both individual source code files and the project source as a whole are copyrighted works.
Even though its earliest publication was in 1996, the GeoTools project still requires a copyright header in source code files; these should be seen as informative, and are not required to enforce copyright. See GeoTools Header Policy Updated for details.
An informative header that names the project, links to to project page, and references the licence is informative, and while not legally binding, might deter some infringers (at least they were warned file-by-file that the code is open source).

Note that the author of this blog post is not a lawyer and this post has not been reviewed by a lawyer. This post should not be construed as legal advice.

Friday, July 8, 2016

FOSS4G 2016 Workshops

GeoTools Workshops at FOSS4G 2016 in Bonn, 22nd August

This year the GeoTools team are pleased to announce that there are two workshops available to help you get up to speed on using and extending GeoTools accepted at the annual OSGeo FOSS4G conference.
  • Monday 22 August 9-13 WS03: Introduction to GeoTools
  • Monday 22 August 14-18 WS14: GeoTools DataStore Workshop
Both of these workshops are Java Development workshops - so not only can you bring your own device - you can bring your own IDE. One instructor will be using Eclipse and the other Netbeans (command line and vi welcome). The instructors are experienced core developers of GeoTools from Boundless and Astun Technology who spend both their working days and free time developing GeoTools and are looking forward to helping you do the same.

Introduction to GeoTools

The first workshop is in the morning of Monday 22nd August provides you with a hands on introduction to GeoTools.

For those new to the GeoSpatial scene we provide an introduction to spatial concepts and how to avoid common pitfalls. The workshop offers a steady series of workbooks introducing:
  • Feature creation
  • Geometry, Coordinate Reference Systems and Re-projection
  • Spatial Queries
  • Handling large format rasters
  • Working with Style
  • Raster Operations
Covering both the concepts and the science of map making the workbooks serve as an excellent reference, but the focus is always on you and the code you need to get the job done.

Please visit the FOSS4G registration pages to sign up for this popular workshop.

GeoTools DataStore Workshop

The second workshop follows directly after the Monday lunch break explores how to extend GeoTools to handle a new datatype. This also allows you to add new data types to any program built using GeoTools such as GeoServer and UDig. This workshop will take a detailed look at how vector data is handled. As an implementer GeoTools provides facilities for automatic handling of advanced functionality: thread safety, transactions with rollback and dynamic reprojection.
You will leave this course with a custom “DataStore” implementation that can be dropped into an application such as GeoServer.

Rush to the FOSS4G registration pages before places run out for these and other exciting workshops!

Code Sprint

FOSS4G has two code sprints this year, the first run concurrently with the workshops, and the second (attended by the GeoTools and GeoServer community) run after the event on Saturday/Sunday.

If you would like to join us please sign up on the OSGeo wiki. Already we have some great ideas on improving SLD interoperability.  Part of this work will build on the GeoTools workshops, creating additional functions for compatibility.

Saturday, June 18, 2016

GeoTools 14.4 released

The GeoTools team is pleased to announce the release of  GeoTools 14.4:

This release was made by Andrea Aime (GeoSolutions) and Alessandro Parma (GeoSolutions) in conjunction with GeoServer 2.8.4.

GeoTools 14.4 is the latest stable release of the 14.x series and is recommended for all new projects.


New features available in this release:
  • [GEOT-5375] - Add a group by visitor (backport 14.x)


For more details on the improvements and fixes, please refer to the release notes for GeoTools 14.4


About GeoTools 14

GeoTools 14 highlights:
For more information see the  14-M014-M114-beta14-RC1, 14.014.1, 14.2 and 14.3 release notes.

Friday, June 10, 2016

GeoTools Header Policy Updated

GeoTools Developers Guide on source code conventions has been updated with a new policy on file headers (exciting I know).

GeoTools will now focus on filling in headers with the current year on initial file creation ... and that is it.
/*
 *    GeoTools - The Open Source Java GIS Toolkit
 *    http://geotools.org
 *
 *    (C) 2016, Open Source Geospatial Foundation (OSGeo)
 *
 *    This library is free software; you can redistribute it and/or
 *    modify it under the terms of the GNU Lesser General Public
 *    License as published by the Free Software Foundation;
 *    version 2.1 of the License.
 *
 *    This library is distributed in the hope that it will be useful,
 *    but WITHOUT ANY WARRANTY; without even the implied warranty of
 *    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
 *    Lesser General Public License for more details.
 */
Previously, we asked contributors to update the headers each time they modified a file, resulting in a date range at the top of each file. While not technically difficult, this was a constant chore for committers and caused friction and delays reviewing pull requests. We trust that the new policy will ease the pull request submission and review process.

We have approached the OSGeo Board and gotten approval to bounce this change off legal counsel. It is hoped that other OSGeo projects can benefit from being more relaxed.

Thanks to Justin for writing up the change proposal and steering this conversation on the mailing list.

Monday, May 30, 2016

GeoTools 15.0 Released

The GeoTools team is pleased to announce GeoTools 15.0!
This release is also available from our Maven repository. Java 8 is now required, please view the install guide for details. This release is made by Jody Garnett and Devon Tucker (Boundless) in conjunction with GeoWebCache 1.9.0 and GeoServer 2.9.0

Features and improvements

    Java 8

    As previously mentioned GeoTools 15.0 now requires Java 8, meaning GeoTools developers get to use all its fun new features. Projects are advised to update their Maven POM in order to use Java 8 features:
                <plugin>
                    <inherited>true</inherited>
                    <groupId>org.apache.maven.plugins</groupId>
                    <artifactId>maven-compiler-plugin</artifactId>
                    <configuration>
                        <source>1.8</source>
                        <target>1.8</target>
                    </configuration>
                </plugin>
    


    GroupByVisitor 

    A new FeatureCollection aggregation visitor has been added: GroupByVisitor which behaves like the SQL Group By clause:
    SimpleFeatureType buildingType = ...;
    FeatureCollection featureCollection = ...;
    
    GroupByVisitor visitor = new GroupByVisitorBuilder()
                      .withAggregateAttribute("energy_consumption", buildingType)
                      .withAggregateVisitor("Average")
                      .withGroupByAttribute("building_type", buildingType)
                      .build();
    
    featureCollection.accepts(visitor, new NullProgressListener());
    
    CalcResult result = visitor.getResult();

    Perpendicular Offset

    Perpendicular offset styling is now available for lines.
           
           <LineSymbolizer>
             <Stroke>
               <CssParameter name="stroke">#FF0000</CssParameter>
               <CssParameter name="stroke-dasharray">5 2</CssParameter>
             </Stroke>
             <PerpendicularOffset>5</PerpendicularOffset>
           </LineSymbolizer>
    

    Other Features and Improvements

    • Support sinusoidal projection in GeoTIFF
    • Support Vector footprints in GDAL plugin
    • Add compatibility for negative date and XDate type in JDBC datastore
    • New and improved support for Rotated Pole Projection
    • Allow users to zoom in and out using the mouse scroll wheel in JMapPane

    Bug Fixes

    • ImageWorker equates setting background values to setting NoData
    • JDBCDataStore initialization is now thread-safe
    • GridCoverage2DRIA can leave border operations in the tile cache without disposing them
    • Speed up rendering SVGs as graphic fills over complex geometries
    • SimpleDateFormat string has MONTH (MM) and Minutes (mm) swapped in GeoPackage
    • GeometryClipper can generate polygons without any inner area, laid on the clipping area border
    • ProcessFunctionFactory is not robust to failing processes 
    • Ignore NetCDF grid_mapping_name that is present but unsupported
    And more! For more information see 15.0 release notes and the release notes for previous releases (M0 | Beta 1 | Beta 2 | RC1).

    About GeoTools 15 

    What's new in GeoTools 15:

      Tuesday, May 3, 2016

      GeoTools 15-RC1 Released!

      The GeoTools team is pleased to announce GeoTools 14-RC1:
      This release is also available from our Maven repository.

      This release is made by Torben Barsballe (Boundless) in conjunction with GeoWebCache 1.9-RC1 and GeoServer 2.9-RC1.

      This is a release candidate for final testing before we release 15.0.

      Fixes since beta:
      • FilteringSimpleFeatureCollection breaks visitor optimizations
      • ReprojectFeatureResults/ReprojectFeatureCollection breaks visitor delegation
      • GeometryClipper can generate polygons without any inner area, laid on the clipping area border
      For more information see 15-RC1 release notes.

      Wednesday, March 23, 2016

      GeoTools 14.3 released

      The GeoTools team is pleased to announce the release of GeoTools 14.3:

      This release was made by Andrea Aime (GeoSolutions) in conjunction with GeoServer 2.8.3.

      GeoTools 14.3 is the latest stable release of the 14.x series and is recommended for all new projects.

      Fixes and improvements:
      • Solved a potential deadlock between ReferencingFactoryFinder and BufferedCoordinateOperationFactory, which might trigger when the system is under load
      • Fixes in SLD multifont support
      • Fixed in the new fast GML 3 encoder path, which was not properly encoding pure geometry collections, and data with 3d coordinates
      • Fixed WFSDataStore failing to start if some numeric params are provided as string, and disabled the complex feature version of it, which was errouneusly taking over the simple feature version (resource to complete the complex feature one wanted)
      • Improved parsing GML files with no/invalid schema reference
      • And more ... 
      For more information see the release notes.

      About GeoTools 14

      GeoTools 14 highlights:
      For more information see the 14-M014-M114-beta14-RC1, 14.014.1 and 14.2 release notes.