(Fix) The tracker tool no longer ignores curves, and instead linearizes them with fixed number of intermediate coordinates per curve part.
The context menu for the tracker tool allows copying the last clicked location. The Copy Location command uses lat/lon in the datum of the current layer. The Copy Location (Projected) command uses the coordinate system of the current layer sans local scales and local offsets (same as the 'Projected' coordinate readout in the status bar).
Snap in a map window is turned off by default.
New edit commands for lines and areas in a map window: Add Mid Coordinate (appears in the context menu for a segment) adds a new coordinate in the middle of the clicked segment, Add Spline Coordinate (appears in the context menu for a spline coordinate) adds a new spline coordinate in the spline part following the clicked coordinate.
(Fix) Switching the edit mode in a map window from Insert Coordinates to Move Coordinates or Move Coordinates + Split no longer stays in Insert Coordinates if the focus coordinate has been moved away from the insert coordinate in the coordinate list in the Record pane.
(Fix) Deleting start or end of a closed area branch no longer does nothing.
Deleting coordinates of the edited geometry in a map window automatically deletes ellipse arcs that became incomplete. Deleting coordinates of a line or an area deletes finished branches that became incomplete. Deleting coordinates no longer always deletes the insert coordinate, switching away from the Insert Coordinates mode. Instead, the location of the insert coordinate is checked after the deletion and if it remains valid, the insert coordinate is kept. Deleting coordinates no longer always resets the focus coordinate to coordinate zero. If the focus coordinate remains valid after the deletion, the focus coordinate is kept. Otherwise, the focus coordinate is set to the closest (in list order) remaining coordinate in the same branch as the deleted focus coordinate. Deleting coordinates no longer always closes the last branch. If the last branch is opened, it is kept opened.
New edit commands for points, lines and areas in a map window: Delete Coordinate (appears in the context menu for a coordinate or spline coordinate) deletes the clicked coordinate. If the clicked coordinate is selected, the command deletes all selected coordinates.
(Fix) Deleting all coordinates of the edited point, line or area in a map window no longer prevents new coordinates from being inserted (deleting everything and creating new geometry from scratch now works).
Attempting to end a branch of the edited area in a map window using Shift-click does nothing if the branch contains less than 3 coordinates. (Previously, the branch was ended with coordinates padded to 3 coordinates + closing coordinate.)
Attempting to end a branch of the edited line or area in a map window using the End Current Branch command pads the branch to 2 coordinates for line and 3 coordinates + closing coordinate for area.
Inserting coordinates into the last branch of the edited point, line or area in a map window allows using the Delete Last Coordinate command to delete last inserted coordinate (Backspace). The command can be used repeatedly until the branch is deleted entirely.
Turning the Insert Coordinates mode when editing a (multi-)point in a map window always moves the insert coordinate to the end of the coordinate list. (Multi-point branches are preserved, but you cannot insert into the middle.)
(Fix) Moving the Record pane to a record with no geometry (a NULL) no longer paints a fake bounds rectangle near the left top corner of the window.
New edit command for points, lines and areas in a map window: Delete Branch (appears in the context menu for a coordinate, curve coordinate or segment) deletes the clicked branch.
New edit command for lines in a map window: Reverse Branch Direction (appears in the context menu for a coordinate, curve coordinate or segment) reverses the direction of the clicked branch. Curve arcs are reversed as well.
New edit command for lines in a map window: Continue Branch (appears in the context menu for a coordinate that starts or ends a branch) starts inserting coordinates into the clicked branch from the clicked end. The branch is moved to the end of the coordinate list, and is reversed as necessary.
Pressing Escape in a map window no longer clears the picked / edited record and no longer clears the cursor mode. (It is too easy to lose changes to geometry / values otherwise.)
New edit command for tracker in a map window: Clear Tracker (Ctrl-Backspace, same as Undo Changes for a record) clears tracker coordinates.
The Record pane allows switching the coordinate list for a line or area to show metes and bounds instead of XY / XYZ coordinate values. The metes and bounds are shown in the format used by ESRI traverse files.
The Record pane allows saving the coordinate list to a text file. If the coordinate list shows XY / XYZ coordinates, the file uses a simple format specific to Manifold that closely matches what is displayed in the list and preserves all data, If the coordinate list shows metes and bounds, the file uses the ESRI format and preserves XY values (not Z) and circle arcs (not ellipse or spline arcs). Short descriptions of both formats follow.
The Record pane allows loading the coordinate list from a text file. Both the Manifold format and the ESRI format are supported, with the format being detected automatically (no need to switch to coordinates or metes and bounds prior to loading data).
Quick description of the Manifold format:
The first line contains P for point, L for line, A for area.
The following lines contain coordinates:
- C <x> <y> [<z>] - coordinate.
- CC <x> <y> [<z>] - circle arc coordinate.
- CE <x> <y> [<z>] - ellipse arc coordinate.
- CS <x> <y> [<z>] - spline coordinate.
- E <x> <y> [<z>] - coordinate that ends a branch.
Quick description of the ESRI format (also see this link):
The first two lines denote format for direction type (quadrant bearing, north azimuth, south azimuth, we do not currently support polar) and direction units (decimal degrees, degrees-minutes-seconds, radians, gradians).
The following lines contain coordinates:
- SP <x> <y> - starting coordinate.
- EP <x> <y> - ending coordinate.
- DD <direction> <distance> - coordinate in specified direction.
- AD <angle> <distance> - coordinate in specified direction relative to the current direction.
- TC <circle arc parameters> - circle arc tangent to the current direction. The arc parameters are any pair out of central angle / arc length / chord length / radius plus whether the arc turns left or right.
- NC <circle arc parameters> - circle arc not necessarily tangent to the current direction. The arc parameters are those for the tangent arc plus one extra direction, any of: tangent / radial / chord.
For both formats:
Case is not important. Whitespace, apart from line ends, is not important. Line ends can be either CRLF or LF or CR. Text encoding is detected automatically, supported encodings are: ANSI, UTF8, UTF16 BE, UTF16 LE. The file can contain empty lines, they are ignored. The file can contain comment lines with comments starting with #, comment lines are also ignored.
All of this only applies during loading. When we are saving data, we are using single spaces, uppercase letters, no comments, etc, following the 'be conservative in what you produce and liberal in what you accept' robustness principle.
Loading the coordinate list validates all data after loading and removes invalid curves or branches. Loading the coordinate list from an ESRI format file remembers the format used for direction type and direction units as well as the format used for each coordinate, and keeps them during editing. (We are going to allow changing the format for direction type and direction units using the UI. We are also going to allow closing a branch distributing closing error between branch coordinates using a command.)
The coordinate limit in GeomLinearize query function applies per curve part instead of per curve, so that spline curves with many control points produce more intermediate coordinates.
The View - Panes - Log Window command has an icon.
(Fix) DELETE / UPDATE / SELECT INTO / GROUP / SPLIT query constructs no longer sometimes stop the query if the source table contains no records. (This was not happening often - mostly when the source table was the result of a join with specific optimizations. The query was aborting instead of producing nothing.)
(Fix) The status bar no longer sometimes fails to turn on the busy indicator during long operations that run in background (eg, creating a temporary spatial index for drawing or image).
New query functions for viewsheds:
- TileViewshedMake takes an image and global viewshed creation parameters, and returns a viewshed buffer. Global viewshed creation parameters are: a refraction coefficient (0 allowed), an option of whether to use datum curvature. TileViewshedMakePar is a parallel variant.
- TileViewshedAreaAll takes a viewshed buffer, a drawing with XYZ points, viewshed creation parameters, and returns an area visible from all points in the drawing. Viewshed creation parameters are: an option of whether Z values are absolute or relative to the image, maximum visible radius (a negative value means that there is no limit), minimum and maximum angles of the camera in degrees (-90 / 90 means that there are no limits). TileViewshedAreaAllPar is a parallel variant.
- TileViewshedAreaAny takes the same parameters as TileViewshedAreaAll and returns an area visible from any point in the drawing. TileViewshedAreaAnyPar is a parallel variant.
- TileViewshedTilesCount takes a viewshed buffer, a drawing with XYZ points, viewshed creation parameters, and returns a table with tiles with pixel values containing the number of points visible from the pixel. TileViewshedTilesCountPar is a parallel variant.
- TileViewshedTilesLevelAll takes a viewshed buffer, a drawing with XYZ points, viewshed creation parameters, and returns a table with tiles with pixel values containing the visibility level of the pixel from all points. If the visibility level of the pixel is positive or zero, the pixel is visible from all points. If the visibility level of the pixel is negative, it contains the difference between the height at which all points become visible and the height of the pixel (the bigger the magnitude of the value, the more pixel has to be raised to become visible from all points). TileViewshedTilesLevelAllPar is a parallel variant.
- TileViewshedTilesLevelAny takes the same parameters as TileViewshedTilesLevelAll and returns a table with tiles with pixel values containing the visibility level of the pixel from any point. TileViewshedTilesLevelAnyPar is a parallel variant.
- TileViewshedTraceLine takes a viewshed buffer, begin and end XYZ coordinates, viewshed creation parameters, and returns the visibility level of the end coordinate from the begin coordinate.
(We are going to provide transform templates for viewshed functions in further builds.)
SHP and other dataports read coordinate system data from PAM XML files (.AUX.XML). (PAM XML files may encode coordinate system data in many different ways, we are supporting all ways that we are aware of, but this is a moving target. If you come across a PAM XML file with coordinate system data that we do not load, contact sales with a suggestion to support it.)
(Fix) Exporting data to GPKG no longer sometimes fails. (This was a regression after changes in the previous build.)
Reading data from PDS reads inventory data.
Reading data from PDS supports floating-point values with non-Intel byte order.
(Fix) IMG ERDAS dataport no longer reads Albers conical equal area projection as Lambert conformal conic.
(Fix) Reading coordinate system from WKT data no longer incorrectly reads several variants of Hotine oblique Mercator systems.
(Fix) Exporting data to MDB no longer fails if the file path contains spaces.
(Fix) Reading data from XLS no longer fails to locate MFD_META$ sheet.
End of list.