Subscribe to this thread
Home - Cutting Edge / All posts - Manifold System

9,470 post(s)
#24-Feb-20 15:55

Here is a new build.

SHA256: b0000c0652ae3026cff85c6d682878f68d94228a034d089284479277e9c44628

SHA256: 535fd1be05d7b9c81e18b2d0d78a1455e6ae75d6a91572a1adbe6b90cdec3c5a


9,470 post(s)
#24-Feb-20 15:56


Invoking the Zoom to Selection command for a layer tab corresponding to a group of layers zooms the map window to the combined extents of the selection in all layers in the group.

The Layers pane allows zooming to one or more map layers using Center / Zoom / Zoom to Selection commands in the context menu.

The Layers pane allows resizing one or more table fields using Best Fit / Best Fit Title commands in the context menu.

The main application window tracks changes to the opened MAP file and includes '*' in the caption if there are unsaved changes. (Note that changes to data in linked data sources do not count as changes to the opened MAP file - attempting to close a MAP file with no changes to its own data but with unsaved changes to data in linked data sources will still prompt to save changes, etc.)

Samples in sample layout frames are made square by default. If the height of the frame exceeds its width, the sample height is reduced to be square. (In essence, the width of the sample is always at least as big as its height.)

The Record pane allows specifying sample shape for an area / line / point sample layout frame.

The Record pane allows specifying sample shape for a color sample layout frame. If the frame is set to show transparent color, the sample is not painted.

The Record pane allows specifying sample text for a text sample layout frame.

The Record pane allows specifying sample width (either a value in points or a percentage of height, default 100%) and position (left / right, default left) for a sample layout frame.

The Page Setup dialog for a layout is reworked. The new dialog allows using either a standard paper format or a custom one. The width / height of the page are specified in the last used layout unit (millimeters / inches / points). The margins are specified in the last used layout unit as well.

The Page Setup dialog automatically rounds layout measurements: millimeters are rounded to 1 decimal position, inches to 2, points to 1.

The New Layout dialog allows specifying paper format / orientation and whether or not to use margins.

The last used paper format / orientation / margins option in the New Layout dialog are saved between sessions.

Snapping layout frames to each other during moves and resizes behaves much smarter. (Moving always preserves the original size of the frame, resizing preserves edges that were not dragged, if there are multiple snap options the best one is chosen, etc.)

The layout window allows aligning selected layout frames to a specific edge of the active frame using Align Left / Align Right / Align Top / Align Bottom commands in the Edit - Align menu (replicated in the toolbar as well).

The layout window allows resizing selected layout frames to the same size as the active frame using Same Width / Same Height commands in the Edit - Align menu.

The layout window allows stacking selected layout frames around the active frame using Stack Horizontal / Stack Vertical commands in the Edit - Align menu. The stack order is set to coincide with the Z order visible in the Layers pane (the active frame can be either top / left or bottom / right or somewhere in the middle of the stack).


There is a new Index LiDAR Files command under the Tools menu that allows scanning a folder of LAS / LAZ files and building indexes for them. The command opens a dialog which allows specifying the folder to scan. After the folder is specified, the dialog scans that folder with all its subfolders and lists found LAS / LAZ files. Each found file shows a status, which can be one of: 'no index' (no .MAPINDEXP file with the spatial index used by Manifold), 'no metadata' (no .MAPMETA file with the coordinate system info and record counts) or the number of points. Selecting one or more files and pressing the Index button creates both the spatial indexes and the metadata for all selected files. The process of indexing reports its progress and can be canceled. The Index LiDAR Files command is available even if there is no opened MAP file.

The Index LiDAR Files dialog includes an option to index multiple files simultaneously. The maximum number of files indexed in parallel is 8 for 64-bit mode and 2 for 32-bit mode.

Linking a LAS / LAZ file with no spatial index built and opening its table shows table records without waiting until the index is built.

Linking a LAS / LAZ file with no spatial index built and opening its drawing shows that the spatial index is being built by setting the chevron of the layer tab to black. After the index is built, the map window refreshes automatically.

The LAS library no longer builds spatial indexes automatically. Instead, the library creates a list of files without the index and allows building spatial indexes on them using the new Index Excluded Files command in the Project pane context menu. Indexing files for the LAS library always uses multiple threads. The process of indexing reports its progress and can be canceled, with partial results accepted by the library.

The LAS library reports the total number of files included in the library and the total number of files excluded from it (due to having no indexes) in the log window. If the library contains one or more excluded files, the Project pane shows it using a distinctive icon.

The coordinate system for LAS is always forced to XY axes. (We saw many files specifying an YX system with the intent of X in the file still remaining X for analysis / display, etc, and no files specifying an YX system with the intent of reversing X and Y stored in the file. If the latter files will prove to exist, we will relax the behavior to use an option, similarly to some of the other formats which have it.)

(Fix) The LAS library reads edited coordinate system for a LAS file from its accompanying .MAPCACHE.

The LAS library can be refreshed using the Refresh command in the Project pane context menu (eg, to pick up new files put into the folder that the library operates on). Refreshing a library may change the schema of the exposed table (because different versions of LAS files expose different fields and because LAS files may contain custom fields).


Web CSV / web KML / KML data sources log each downloaded web resource.

Reading PBF data reports record type as an int8 instead of as a string for better performance.

End of list.

129 post(s)
#29-Feb-20 09:52

Using the latest version I came across an unexpected behavior but before seeing it as a bug I need some different points of views.

The context :

1) I open two maps and put them aside using the ctrl-click

2) the upper map is active as is one layer of it

3) if I click a layer tab of the second (inactive) map, the layer is activated (grayed) but not the map

My first intuition was that putting focus on a layer would have activated the map, is this point of view naive in a way?




6,364 post(s)
#29-Feb-20 10:44

Not naive. It's a small bug in focus, I think. I've reported it.

129 post(s)
#29-Feb-20 21:33


I just encountered another strange behaviour with a point drawing, not all the points are displayed and some appears or disappears when I move the map without any pattern, same if I zoom in and out.

This is visible on the attached images.

I first though that to be linked to any rendering optimization that let some points on the side but its is the case even with small drawings.




9,508 post(s)
#29-Feb-20 22:00

Can you give some example data, preferably with a couple of Locations where point(s) appear and disappear?

Sounds important.

129 post(s)
#29-Feb-20 22:20


Just tested one more thing and it seems to be related to the fact that many points are "hidden" by the style.



9,470 post(s)
#02-Mar-20 10:53

This isn't a bug although perhaps something to be improved.

What happens is that there is a ton of points and a lot of them are hidden using styles. Rendering ignores points that are on top of each other with some tolerance and it does so without considering styles. So, when you are panning and zooming around, the system first filters points using their geometry and selects a subset of them for rendering and then discovers during rendering that some of the selected points have to be rendered as nothing due to their style. The problem is that filtering points using their geometry can remove visible points in favor of hidden points. This isn't a bug per se, but I agree the effect is unpleasant. For the record, filtering points using a query (SELECT * WHERE <criteria used in styles>) currently runs into the exact same issue, although that's implementation-dependent and may change in the future - filtering by geometry pre-empts filtering in WHERE and visible points might get removed in favor of hidden points.

The way out of this is to give you control over filtering used during rendering, and in particular, allow turning it off. We are planning to do this.

Alternatively, you can force filtering used in style to apply first - by doing SELECT INTO a new table.

Or, since we are in 9 and we have table-valued functions and can link queries, we can alter the SELECT * WHERE ... query to do the same thing:


TABLE CALL TableCacheIndexGeoms(

 (SELECT * FROM [sg18 drawing] WHERE [LOCALMAXSTATUS9] > 0), true


Try linking this as a drawing and it should show all points.

What the query does is (a) specifies the criteria you ultimately want to filter on (the one you use in the style), and (b) creates a new temporary table with a new temporary index which will only contain known-visible points. Then, when the system does its geometry filtering, it can only remove visible points in favor of other visible points, which results in predictable displays.

129 post(s)
#02-Mar-20 11:12

the TableCacheIndexGeoms strategy is the one I used in order to "filter" before applying a style. Thanks for the explanation on the behaviour origins.


424 post(s)
#24-Feb-20 19:36

Estonian translation file updated to


Manifold User Community Use Agreement Copyright (C) 2007-2019 Manifold Software Limited. All rights reserved.