This build updates all third-party components that we use. The most important components:
* Visual Studio: we switched to a new major version of the compiler. The new compiler includes new types of optimizations and although none of them have a major effect, they do help every now and then throughout the code. The new compiler will also allow built-in mitigations against Spectre attacks. This build does not have this turned on, but future builds likely will. There is a new recommended CRT:
The previous CRT should continue to work with this build, but the installer packages for the next public build will include the new CRT.
* ECW SDK / MRSID SDK / FileGDB SDK - bug fixes.
* Pre-built GPGPU modules are compiled using CUDA 9.1 which has several minor code generation optimizations compared to the previous version.
Editing a coordinate system automatically selects the starting system in the lists of known systems and puts the parameters of the system into the controls in the Custom tab. If the starting system is not found in any list, the dialog switches to the Custom tab.
Editing a base coordinate system automatically selects the starting system in the lists of known systems and puts the parameters of the system into the controls in the Custom tab. If the starting system is not found in any list, the dialog switches to the Custom tab.
The local scales, local offsets and units of a coordinate system are separated from other parameters into the new 'Metrics' readout at the bottom of the dialog. The readout reports one value for the local scales if they coincide and two values if they don't, then values for the local offsets unless they are zero. All values are reported in the units of the coordinate system. Clicking a button to the right of the readout shows a context menu with the 'Edit Metrics' command which edits the values using a dialog.
Switching between coordinate systems (on the same tab or on different tabs) in the coordinate system dialog keeps or replaces metrics depending on whether they coincide with the default metrics of the coordinate system or contain custom values (read from a world file or entered manually, for example). If there are no custom values, selecting a new coordinate system replaces metrics with the values for that coordinate system (usually 1 m or 1 deg, but some national coordinate systems use values like 0.9 m). If there are any custom values, metrics are kept unchanged.
Metrics for EPSG and SRID coordinate systems are applied as overrides. (This allows to keep the coordinate system definition as a code for readability / easier conversion.)
The Coordinate System Metrics dialog allows using a custom unit scale. (This is desired for cases where the definition of the coordinate system uses a slightly different scale for a foot or some other standard unit than is used in 9.) If a coordinate system uses a custom unit scale, the metrics readout displays '*' after the name of the unit.
Editing a coordinate system or a base coordinate system moves focus to the list of systems in the initial tab, unless the initial tab is Custom.
(Fix) The coordinate system dialogs localizes names of all parameters (we were missing several).
The old 'Graphics (XXX DPI, YYY)' variants of Orthographic used by 8 are removed from the list of standard coordinate systems.
(Fix) Creating a web dataport with a persistent cache no longer sometimes fails to attach the parent data source to use as cache due to a race condition (and makes the web dataport cache data in a temporary database).
(Fix) The Oracle dataport correctly handles empty GEORASTER values.
The GPKG dataport returns schemas for views, which allows using views as a base for drawing or images.
The SQLITE / GPKG dataports keep binary values in non-binary fields as binary. (This is specific to SQLITE, it allows values of different underlying types in the same field.)
Creating a data source for a DWG or DXF file allows merging layers using an option in the New Data Source dialog. When merging layers, the dataport creates a single table for all vector data and adds a field for layer name.
Creating a data source for a KML file allows merging layers using an option in the New Data Source dialog. When merging layers, the dataport creates a single table for all vector data and adds a field for layer path.
End of list.