Rendering lines performs faster due to optimizations in clipping code.
Placing labels onto lines only considers parts of line branches that appear on the screen. (Previously, parts of branches could have been invisible, resulting in a label being put partly outside of the screen.)
Placing labels onto lines is reworked to put labels into the center of each visible part of the line. Labels can follow multiple consecutive segments. (Previously, we were placing labels onto segments that were long enough to fit it. This was way too restrictive.)
Labels that follow multiple segments are rendered with the following restrictions:
- Unicode features (multiple code points collapsing into a single glyph, a single code point expanding into multiple glyphs, all types of whitespace, etc) - supported,
- mixing multiple languages in the same label (switching fonts) - supported,
- right to left text, mixing left to right and right to left fragments - supported,
- multiple lines - supported (normally you would want curved text to use a single line, but if the curvature is not high, the results are pretty legible),
- font features - partly supported: font face / weight / italic supported, underline / strikeout not supported (providing a useful underline for curved text is pretty hard, varies between languages),
- boxes - not supported (boxes for curved labels make little sense),
- halos - not supported currently (we will add this),
- shadows - supported,
- icons - not supported currently (we will add this).
Labels that follow multiple segments are supported during printing, with optimizations for high resolution / big printing area.
Labels that follow multiple segments are not supported in the reduced graphics mode.
Placing labels onto lines simplifies line metric slightly to avoid label text following the line too hard. (We will allow turning this off or specifying tolerances. We will also allow putting the label above or below the line, etc.)
(Fix) Reading a world file no longer fails to adjust values according to the unit scale from an accompanying PRJ file.
The dialog used to edit text values can be resized. The tab size used for the text is reduced to 4 characters (was 8).
EPSG coordinate systems have been updated to EPSG 10.19. (Mostly. There are a few cases where a coordinate system managed to change its base coordinate system. We did not accept those changes yet, will accept them in the near future.)
There is a new coordinate system type: Lambert Conformal Conic (Single Parallel, B).
(Fix) The Erase command in a map window no longer fails to erase data far of the edited geometry when keeping the inner part.
Activation dialogs are renamed to include 'Manifold 9' in the caption, to distinguish from Manifold 8.
(Fix) Matching a bracket in a text edit control using Ctrl-] or Ctrl-Shift-] now longer fails to scroll caret into view if the match is offscreen.
The Link command logs the names of the processed files. (Similarly to Import.)
Dragging and dropping files from Windows Explorer into the list of components in the Project pane imports or links them (plain drop imports, Shift-drop links, the cursor changes accordingly).
Dropping files into a child data source confirms the action. If the confirmation is turned off, it can be turned back on using the 'Confirm dropping files into child data source' option in the Options dialog.
Dropping files into a child data source that has not been opened yet or is read-only shows an error.
Dropping a single MAP / MXB file opens the file as long as the user is not trying to link it (by holding Shift).
Importing or linking a VRT file (*.VRT) automatically invokes GDAL / OGR. (VRT is a text file that specifies which GDAL / OGR driver to use and with which parameters, similar to DSN for ODBC or UDL for OLE DB.)
GDAL / OGR dataport supports GDAL 3.2.x (GDAL302.DLL).
(Fix) Parsing a coordinate system from WKT / WKT2 no longer misparses systems with different units for XY and Z.
Printing a coordinate system to WKT / WKT2 writes authority codes for EPSG systems. Parsing a coordinate system from WKT / WKT2 reads authority codes for EPSG systems and if the definition of the parsed system matches that of the referenced EPSG system, adds the EPSG code to the parsed system (to allow using transforms for that system specified in EPSG data, eg, transforms based on grid files).
SQLITE / GPKG dataports support deleting table fields.
SQLITE / GPKG dataports support renaming table fields.
SQLITE / GPKG dataports support ESRI ST_GEOMETRY extension for all operations if it is installed, in both 32-bit and 64-bit modes.
Refreshing a table on a database automatically reloads table metadata from the database to catch changes done in other sessions (eg, in a different instance of Manifold connected to the same database).
(Fix) The application window no longer fails to show non-ANSI characters in caption.
(Fix) Opening a MAP / MXB file with non-ANSI characters in path no longer fails.
Attempting to open a MAP / MXB file from the list of recently opened files removes the file from the list if the attempt to open failed.
Migrating a compressed image from a MAP file created by Manifold 8 puts the compressed image into a new ECW / JP2 file with the stable name to avoid creating a new such file on each migration.
Migrating an image from a MAP file created by Manifold 8 no longer creates the Level field in the image table. (This was making the image unusable for many transforms.)
End of list.