Recent Additions

Upgrades from August, 2017, Radian Studio

Layer transparency

Over 300 Items

Between August and December of 2017 the Manifold Future series of open beta builds has evolved Radian Studio into the initial Release 9 build. Release Notes issued in the Cutting Edge section of the user forum.

Image at right: A view of Monaco in Release 9. Layer transparency allows setting the buildings layer to 50% opacity so the Google satellite photo web server layer can shine through data layers imported from OpenStreetMap PBF format.

Many of the listed items in release notes report changes that involve several, at times dozens of improvements, so the total number of improvements is easily four or five times larger than the number of terse line item descriptions.


The Big List of Release Note Items

The following list is a raw, concatenated listing of most release note items published for various builds from late August, 2017, to December, 2017.

  • There is a new Contents pane which can contain multiple subpanes. It is going to contain all other panes except the Project pane.
  • The Info pane is replaced with the Component pane in Contents.
  • The Component pane shows icons for components and data sources. If a component referred to by a parent component does not exist, it displays without an icon. Clicking a component or a data source selects it in the Project pane.
  • The Component pane shows icons for fields and indexes. If a field referred to by a component does not exist, it displays without an icon.
  • The Component pane shows temporary indexes built in component windows.
  • Switching between component windows updates the Component pane immediately rather than after a short delay.
  • The Component pane shows info for the active layer in a map window.
  • Opening a drawing, image or labels creates a virtual map which can accept other layers and work with them. The View - Open Table command is removed as no longer necessary, use the Open Table command in the layer tab menu.
  • The Component pane shows the coordinate system of a map and the active map layer side by side. Both coordinate systems can be edited directly in the pane.
  • Settings related to the layout of panes are decoupled from Radian / earlier versions of Viewer to avoid settings made by older builds from affecting newer builds and vice versa.
  • (Fix) Continuously rendering a preview of a drawing transform using the advanced rendering engine no longer sometimes starts ignoring line styles until the preview is turned off and back on or allowed to complete
  • The table window supports the View - Refresh command which refreshes record values. Being able to refresh record values is useful if the table is changed outside of Manifold - for example, from a different machine. In this case, refreshing record values allows seeing changed values without having to close and reopen the window.
  • The View - Refresh command in the table window re-reads table schema. Re-reading table schema also refreshes virtual components based on the table.
  • The keyboard shortcut for View - Refresh is switched from F5 to Shift-F5 to avoid conflict with View - Run.
  • (Fix) Raster dataports no longer fail to apply world file coefficients to coordinate system data supplied via a PRJ file.
  • Coordinate system pickers merge favorites and edit buttons into a single button.
  • The coordinate system picker for a map layer in the Component pane supports changing coordinate system in addition to assigning initial coordinate system. The main menu no longer includes commands related to coordinate systems (all of them are available in the Component pane).
  • Dataports mark components with incomplete coordinate system information using a specialized coordinate system property. Coordinate systems marked as incomplete display in red color.
  • The coordinate system picker for a map layer in the Component pane disallows reprojecting a component from an incomplete coordinate system.
  • Coordinate system pickers detect coordinate systems with YX axes or with axes corresponding to 3d Cartesian space (used for intermediate coordinate systems - for example, in EPSG) and signal the unusual order of the axes by printing it on the right side of the control.
  • The coordinate system dialog displays the order of the axes at the bottom of the dialog, allows selecting it for a custom coordinate system, and allows forcing it to XY for all types of systems (on by default). Forcing the axes order of a coordinate system to XY keeps the original definition (eg, EPSG code) of the system whenever possible. (The only two cases where a coordinate system definition has to switch to JSON is PRJ and XML. EPSG, SRID and other codes stay as codes and get a small extension.)
  • Coordinate system pickers allow switching axes of the current coordinate system from YX to XY via a command.
  • Altering the coordinate system of a map via a script or query makes map windows displaying the map zoom to fit.
  • The system provides a default favorite base coordinate system for WGS84.
  • The system provides default favorite coordinate systems for Pseudo-Mercator and lat/lon.
  • The favorite base coordinate systems dialog and favorite coordinate systems dialog allow readding default favorites in case they have been deleted. Attempting to readd default favorites for a second time will select existing favorites.
  • The favorite base coordinate systems dialog and favorite coordinate systems dialog allow adding a new favorite from within the dialog.
  • (Fix) Exporting an image to ECW no longer sometimes closes application in case of a failure.
  • The DGN dataport exposes a btree index on tables with geometry data.
  • The DGN dataport supports more types of vector data and more types of curves.
  • (Fix) Various file dataports support Unicode filenames, including references between files.
  • Database dataports better recover from partial failures during making changes to table schema. (Previously it was sometimes necessary to close and reopen the database to correctly detect all changes.)
  • Generating unique names for new components (as well as fields and everything else) treats a name consisting of a single numeric value as a valid name and appends a unique postfix after it. (Previously, inserting a component named '2017' into a MAP file already containing a component with such a name was renaming the second component to something like '2'. Now, the second component is renamed to '2017 2'.)
  • The system provides default favorite data sources for image servers (Bing Street Map, Bing Satellite Map, Google Street Map, Google Satellite Map, OpenStreet Maps Base).
  • The Favorite Data Sources dialog allows readding default favorites in case they have been deleted.
  • The Favorite Data Sources dialog allows adding an arbitrary new favorite data source without having to create it outside first.
  • The names of favorite base coordinate systems, favorite coordinate systems and favorite data sources are forced to be unique. Attempting to set the name of a favorite item to be the same as the name of another favorite item of the same type adds a unique postfix.
  • The Project pane and the Contents pane are made slightly wider. Both panes have a bit of padding at the border to make them work better when undocked.
  • Context menus in panes and dialogs display the description of the active menu item in the status bar.
  • Dialogs for favorite items use a new list control similar to the control used for tables. Clicking Enter on a cell starts editing it instead of closing the dialog. Reordering selected favorite items using toolbar commands or Ctrl-Up / Ctrl-Down keys no longer sometimes loses the focused item.
  • (Fix) The Component pane under Contents no longer fails to update when switching between different windows showing the same component. (Some parts of data, like temporary indexes, are specific to window.)
  • The Properties dialog uses the new list control. Filtering items no longer sometimes loses selection state for the focused item. Changes to filter text that do not affect the filter criteria (ie, changing the case of filter characters or adding leading or trailing whitespace) are ignored. New properties are inserted using a special item at the bottom of the list instead of via a toolbar button.
  • The Layers pane is moved under Contents. The list of layers is displayed using the new list control. Making changes to layers outside of the layers pane no longer sometimes loses selection state for the focused item. Deleting the layer for the producing component in a virtual map created for that component is disallowed. (If the user opens a drawing and drops some other components into the window showing the drawing, the layer corresponding to the drawing cannot be deleted - although all other layers can.)
  • The list of layers in the Layers pane includes a virtual layer for background color. The controls for background color outside of the list are removed. The layer for background color can be turned on and off.
  • The list of layers in the Layers pane shows layer opacity and allows editing it.
  • Editing the opacity of one of the selected layers in the Layers pane applies the new opacity value to all selected layers. Same for toggling layers on and off.
  • The Record Values dialog is reworked into the Record pane under Contents. Alt-clicking a drawing object or an image tile automatically switches to the Contents pane and the Record pane under it, and moves the input focus to the list of values. Alt-clicking an empty space clears the Record pane. Opening a dialog like Select or Transform clears the Record pane. The list of values shows NULL values in gray, similarly to a table window.
  • The Record pane under Contents includes a toolbar with Move Previous and Move Next toolbar buttons that can be used to move between drawing objects or tiles. The new object or tile is automatically highlighted the in the map window. (We will also autoscroll to the new object, allow moving the window to it, etc.)
  • Right-clicking the caption for the active pane in the Contents pane opens the next pane. (This saves a lot of mouse movement when switching panes. The cursor is usually near the captions at the top and being able to right-click the caption for the active pane to move to the next pane saves moving all the way to the bottom of the screen.)
  • Creating a new MAP file or opening an existing MAP file switches to the Project pane. If the Project pane is hidden, it is opened.
  • Importing or linking a file switches to the Project pane and selects the first new component. If the Project pane is hidden, it is opened.
  • The new grid control and the table window paint record handles and field headers with a flatter look.
  • Ctrl-clicking any cell of a record in the new grid control or the table window toggles the selection state of the clicked record. (Previously the user had to click a record handle.)
  • Pressing Ctrl-Space in the new grid control or the table window toggles the selection state of the current record.
  • Undocking a window reduces its height more. The undocked window is put into a more predictable position. (The window could previously jump a bit trying to snap to edges.)
  • (Fix) Closing a MAP file no longer sometimes fails to unlock the file.
  • (Fix) The DWG dataport no longer sometimes repeats the same label multiple times.
  • (Fix) The DWG dataport no longer sometimes fails to keep Z values.
  • The DXF dataport returns all geometry values as 3D instead of returning a mix of 2D and 3D values. (The mix corresponds closer to what it stored in the file, but is generally harder to work with after. We are considering making similar changes to several other dataports.)
  • (Fix) Attempting to change the schema of a SQLITE table with geometry values no longer sometimes fails.
  • (Fix) Dataports for 000 (S-57), SID and other files correctly omit setting the coordinate system when there is none provided. (Previously the coordinate system could have ended up set to the default Pseudo-Mercator system. The change allows the UI to detect when the coordinate system is missing and has to be set prior to performing other operations.)
  • The GRD Surfer dataport adjusts the coordinate system for the image resolution.
  • The GRD Northwood, MIF and TAB dataports recognize many more coordinate systems used by MapInfo.
  • (Fix) The image library dataport no longer sometimes fails to render any tiles except the first one.
  • Attempting to edit a geom, tile or varbinary value in a table window by pressing Enter or F2 or double-clicking a cell does nothing. (Previously, the table window was opening an edit box with text, starting an edit that could not succeed.)
  • The context menu for a text value in a table window includes the Edit command which allows editing the value in a dialog. If the value is read-only, the command still allows seeing the value in the dialog.
  • Attempting to edit a text value that is longer than a pre-defined limit (1024 characters) or contains multiple lines in a table window automatically edits the value using a dialog instead of an inline edit control.
  • The Properties dialog shows properties for read-only components with gray background.
  • The Properties dialog highlights changed property names and / or values.
  • The Properties dialog provides a context menu for names and values with commands that allow copying, pasting, deleting names or values or editing them using a dialog. Attempting to edit a value that is long or contains multiple lines automatically edits it using a dialog.
  • The Record pane hides the list of values until it gets a record.
  • The Record pane allows editing values. Editing values enables the Update Record button at the bottom of the pane which saves changes to the record table.
  • The Record pane shows read-only values with gray background and disallows editing them.
  • The Record pane highlights changed values.
  • The Record pane provides a context menu for record values with commands that allow copying, pasting, deleting values and editing text values using a dialog. Attempting to edit a text value that is long or contains multiple lines automatically edits it using a dialog. Copying a value preserves its type, pasting a value converts its type to the type of the target field. It is possible to copy and paste typed values between the Record pane and table window.
  • Alt-clicking a drawing object shows object coordinates in the new Coordinates tab in the Record pane. The coordinate list shows X and Y coordinate values as well as icons for coordinate types.
  • The coordinate list in the Record pane highlights the current coordinate in the attached map window.
  • The coordinate list in the Record pane may include an insert location. Selecting a coordinate and pressing Insert moves the insert location after the current coordinate. Selecting an insert location and pressing Insert removes the insert location. If the insert location is present, clicks in the map window add coordinates to that location.
  • Starting a new object in a map window automatically switches to the Record pane, selects the Coordinates tab, adds the clicked coordinate and creates an insert location after it. (Further clicks in the map window will add more coordinates. The Values tab in the Record pane allows specifying field values for the new object. The old dialog with the list of coordinates for new objects is removed.)
  • Adding a coordinate to a geometry value in a map window using Shift-click attempts to end a branch. Ending a branch of a line or area is only possible if the branch is at the end of the value.
  • Right-click in a map window accepts changes to the current record. Accepting a new point object with right-click creates a separate record for each coordinate, copying entered values from the Values tab of the Record pane to each. Accepting a new point object with Shift-right-click creates a single record with a multipoint.
  • Pressing Ctrl-Backspace in either a map window or the Record pane cancels changes to the current record. Canceling changes to a new object clears the Record pane. Canceling changes to an existing record re-reads the record and refreshes the Record pane. Pressing Ctrl-Enter accepts changes to the current record.
  • Pressing Escape in a map window cancels changes to the current record and clears the Record pane. If there is no current record, pressing Escape resets the cursor mode to the default mode.
  • The Record pane shows coordinates for read-only geometry values with gray background.
  • The Record pane disallows changing the value of a geometry field that produces the coordinates in the Coordinates tab from the Values tab.
  • The Record pane disallows changing the values of the primary key fields for an existing record, but allows changing them for a new record.
  • Clicking a coordinate handle in a map window selects it in the coordinate list in the Record pane. The default click tolerance is increased from 4 pixels to 6 pixels to coincide with the size of the handle for the current coordinate.
  • Pressing Insert in a map window that edits coordinates moves the insert location after the current coordinate or deletes the insert location, similarly to pressing Insert in the coordinate list in the Record pane.
  • The coordinates in the Record pane can be selected (using Ctrl-A, Ctrl-I, Ctrl-Space, Ctrl-click). The map window displays selected coordinates using solid dark color. The Record pane allows deleting selected coordinates using a toolbar button.
  • Dragging a coordinate handle in a map window moves the coordinate. If the dragged coordinate is selected, all selected coordinates are moved together with it. Shift-dragging moves the entire object (without having to select all its coordinates first). To cancel the unwanted drag operation before it completes, press Escape.
  • The Record pane locks editing coordinates in the attached map window until the Coordinates tab is active. The map window displays coordinates that cannot be edited using a cursor using smaller handles.
  • Entering coordinates in a map window automatically snaps to other objects in the active layer. Space toggles snap on and off. If snap is turned on, the map window draws a rectangular snap reticule near the cursor. The snap radius is capped to avoid snapping to objects far away from the cursor.
  • Snapping to coordinates in big layers and / or layers coming from slow data sources captures snap data in background. The map window changes the color of the snap reticule to a lighter shade until all snap data is captured.
  • The Record pane allows editing coordinates directly in the list. Editing a value of the blank coordinate in the insert location inserts a new coordinate filling the missing values from the coordinate above the insert location.
  • The Record pane shows Z values for geometry values that have them, and allows editing them.
  • The Record pane highlights changed coordinates. (There is no separate highlighting for X, Y or Z values, the entire record is highlighted.)
  • (Fix) E00, FLT, GRD and several other dataports no longer sometimes fail to work with files with non-ANSI filenames.
  • There is a new Style pane under Contents which shows style data. Current styles are shown at the top of the pane, clicking on styles displays details in the bottom of the pane. (The Style pane is currently limited to drawings, but we are extending it to cover images and labels as well. The current build allows using the former Edit - Style tool for images.)
  • Style items in the Style pane display a field icon when a style is controlled using a field. If the style item is unselected, the icon is grayed out. Clicking the right part of a style item where the field icon appears selects the style and displays its details in the controls below the items. Clicking the formatting sample in a style item does the same and then displays a drop-down menu with formatting choices. Selecting a formatting choice immediately applies it, altering the style and updating the component window.
  • Ctrl-clicking a style toggles its selection status. When there are multiple styles selected, the list of style values displays a separate column for each formatting type. Columns for similar formatting types (eg, point size and line size) are collapsed into one.
  • The list of fields in the Style pane excluded binary fields such as geoms and tiles.
  • The Style pane caches field statistics computed during style manipulations on a per-window basis. This allows freely switching between windows without having to recompute statistics that have already been computed.
  • The Style pane allows canceling computing field statistics and uses whatever data has been computed up to that point (instead of canceling the style operation).
  • Switching a field or a formatting method in the Style pane automatically recomputes style values.
  • The unique values formatting method in the Style pane prioritizes most frequently used values.
  • The Style pane automatically rounds values generated by the interval formatting methods to 0.01% of the available value range. If the producing field is integer, the Style pane rounds values towards an integer.
  • There are separate foreground and background colors for areas, lines and points.
  • The drop down menu for point styles includes the Symbol command which allows setting the point style to an arbitrary symbol in an arbitrary installed font. The advanced rendering engine optimizes rendering of point styles that use symbols.
  • Editing a formatting value of a selected style value in the Style pane applies the new value to all selected values. Pressing Delete or clicking the Delete button in the toolbar deletes selected style values. Right-clicking a selected style value allows transforming formatting in the selected style values using Interpolate, Darken, Lighten, Grayscale or Reverse.
  • Applying a built-in color palette changes all style values and ignores the selection. Applying a built-in color palette to a list that contains both foreground color and background color applies the palette to both colors and then darkens the values for foreground color.
  • Selecting a style automatically selects other styles that use the same field and the same style values.
  • The Style pane disables all editing if a component is readonly.
  • The Style pane automatically sorts style values according to the type of the producing field, using either numeric or alphabetic order. Editing a style value automatically changes its position in the sort order. Attempting to edit the style value to a value that is already in the list is ignored.
  • The Style pane displays the number of records for unique values as a percentage. If the producing field contains many unique values, some of them might be untracked and not display a percentage. If the percentage for a value is lower than 0.1%, it is not displayed. If the percentage is lower than the percentage for all untracked unique values, it is displayed with a lighter shade of gray.
  • The Style pane displays the number of records at or below each interval value as a percentage. If the producing field contains many values, the percentages might be approximate.
  • Tables in MAP files and MFD_xxx tables in file / web data sources use an advanced fill method which stores very little data per record and is super-fast. Record values are taken directly from the table and so what is displayed on the screen is always what the table has.
  • Tables on data sources other than MAP files and tables returned by queries (regardless of the data source) use a regular fill method which stores full record values. Records are fetched in bulk and without order, which all data sources optimize for.
  • Tables on web data sources that have tiles use the regular fill method but delay fetching tile values for each record until it becomes visible in the table window. Since these tables are virtual and all fields except the tiles are synthetic, the table window fills very fast and then starts fetching tile values for individual records. If a record that has been scheduled for fetching is scrolled out of view, the request to fetch it is removed from the queue.
  • The table window puts a limit onto the number of records for all three methods. The current limit does not depend on the method and is set to 50,000 records. (We may allow editing this limit in the future and setting it to, say, 1,000,000 records or even higher. However, we find that in practice 50,000 is already plenty. If the table is larger than that, it is not very practical to work with it without applying some filtering using a query anyway. In fact it is much more common to see such limits in other tools set to 5,000 records or so.)
  • The scrollbar is no longer dynamic. The size of the scrollbar handle correctly reflects the relative size of the screen to the fetched portion of the table (at 50,000 records the handle is already about as small as it can go). The position of the scrollbar handle correctly reflects the relative position of the screen in the fetched portion of the table.
  • The table window displays up to two special records:
  • The new record placeholder. Displayed at the very bottom of the table, and only if the table supports adding new records.
  • The fill record placeholder. Displayed right above the new record placeholder. The fill record indicates where the records fetched from the table go. If the table is fetching records, the fill record is the bluish preview color. If the table finishes fetching records before hitting the limit of 50,000 records, the fill record is removed. If the table hits the limit of 50,000 records and the table contains more records than that, the fill record is kept and its color changes to gray. The fill record also has an icon on the record handle.
  • When the table is filling, if the cursor is put onto either the fill record or the new record, the cursor will stay on that record and the table will grow upwards. Otherwise, the cursor will stay on the regular record and the table will grow downwards.
  • The benefits of the new design apart from better scrollbar:
  • Tables from slow data sources are being slow in background, not in the UI. Previously, a slow table (eg, a table from a web source) was hanging the UI with Program unresponsive-like messages. Now the table window stays responsive and the worst thing that can happen is that it is slow to close waiting for a single outstanding request.
  • Tables returned by queries always use the fastest reading strategy and never become slow just because the result table managed to expose an index. This is different from the above in that the table window is genuinely faster at displaying these queries (frequently much faster), not just more responsive.
  • Tables from Google Maps and the likes are no longer prone to fetching way too much data from the web, running into issues with quotas. (Many of the big image servers like Bing display NULL values for tiles in the first fetched portion of the humongous virtual table - these NULL values are normal and occur because web servers do not store data for the extreme values of X / Y.)
  • Records with invalid values no longer stop the fill. They display NULL values in all fields and the fill continues. (We couldn't have done it before if the table was being filled via an index that was disallowing NULLs, now we can.)
  • Table window is much better at updating after changes. Previously, many types of changes were making table window refill. Now small operations like inserting a new record or editing values of an existing record never involve a refill regardless of the type of the table, there are big optimizations for updates to tables in MAP files, etc.
  • Editing a value of an existing record that has not been put into the edit mode by clicking on its handle applies the edit immediately. (Editing the first value of a new record still continues to put it into the edit mode which requires committing changes via Ctrl-Enter or the context menu.)
  • Windows can and do share selections whenever this makes senss.
  • Selection for a table in a data source is kept until the data source is closed. If the user opens a MAP file, opens a drawing, selects an object, then closes the drawing and reopens it again, the drawing will have the object selected. If the user closes the MAP file, then reopens it and reopens the drawing, the object will not be selected because closing the MAP file threw it away.
  • Selection for a component based on a table uses the same selection as the table. This applies to all drawings based on the same table, they all share the same selection. Opening a table, a drawing made on that table, and another drawing made on the same table will allow selecting in any of the three windows and when the selection is altered in one window, the other two will update to show the changes.
  • Selection for a query or a component based on a query is per-window and is not shared. This is because (a) multiple runs of the same query produce different tables and it might sometimes be desired to keep an older table and a newer table, and because (b) queries might have parameters and so running the exact same query will produce different results because of different parameter values.
  • Selection(table, selectionID, selected) -> table is reduced to Selection(table, selected) -> table, which is used for tables and components based on tables. SelectionForWindow(window, layer) -> selectionID is reworked to SelectionWindow(table, window, layer, selected) -> table, which is used for queries and components based on queries. The selection IDs are eliminated.
  • SelectionKeys(table, selectionID) -> table is reduced to SelectionKeys(table) -> table, plus there is a new function for queries: SelectionKeysWindow(table, window, layer) -> table.
  • Same for SelectionIsEmpty, which is now also two functions.
  • Same for SelectionIsInverted, also two functions.
  • (Fix) Definitions of native queries on SQL Server are no longer cut at 4000 characters.
  • Shift-clicking a cell or record handle in a grid window extends the selection from the current record to the clicked record. Extending the selection copies the selection state of the current record.
  • Shift-Down / Shift-Up / Shift-PgDown / Shift-PgUp / Shift-Ctrl-Home / Shift-Ctrl-End keys in a grid window extend the selection from the current record to the new record.
  • (Fix) GeomConvertToLine no longer returns NULL values for normalized areas.
  • Folder selection dialog uses the new dialog similar to File - Open.
  • File - Open dialog includes a checkbox for opening MAP file in read-only mode.
  • File - Link dialog includes a checkbox for switching between persistent cache and temporary cache. The old Options button is removed.
  • File - Import / Link dialogs report the name of the target data source in caption instead of in a control close to the bottom of the dialog, and only report it if the target data source is different from the main MAP file.
  • File - Export dialog saves and restores last export filter for component type.
  • The comment / script windows detect readonly components and make the text readonly.
  • The table window allows reapplying current filters and orders using the new View - Reapply Filter / Order command, also put into the toolbar. The command is always enabled. If there are no filters / orders, the command does nothing.
  • The table window displays a filter icon in the left top corner if there are filters. Clicking the icon reapplies filters (and orders if there are any).
  • The table window supports creating a query for the current filters using the new View - Filter - Filter using Query command. The command is unavailable from the command window not tied to a component because there is no way to refer to the temporary table within that window.
  • The default sizes for datetime, varbinary and several other fields used by the table window are increased.
  • The Edit - Find and Edit - Replace dialogs are cleaned up and work again for the table window. Using dialogs with values in a non-text field disables match options for case and whole word. Both dialogs set the default button to Find Next, allowing to invoke the dialog using Ctrl-F / Ctrl-H, then typing text and immediately pressing Enter to try finding it.
  • The table window automatically scrolls to the target field when displaying preview for the Transform pane.
  • The table window no longer stops filling records after applying a filter or order. New records are appended at the bottom, without filter / order applied. To reapply filter / order, use View - Reapply Filter / Order.
  • The table window holds on adding new records coming from the table if the user starts editing a cell value or invokes a context menu. The records continue being fetched in background, but they don't go to the list until the editing finishes / until the menu is closed.
  • The table window shows a context menu for the fill record with the new Stop Reading Records command that stops the fill and the Filter using Query command to create a filter query if there are any filters.
  • (Fix) Database dataports create virtual drawings based on views in addition to tables.
  • Computing the bounding box for a spatial index in Oracle performs much faster.
  • (Fix) Resizing the map window correctly updates overlay for object shown in the Record pane.
  • (Fix) Deleting object shown in the Record pane clears the Record pane.
  • Exporting data with EPSG coordinate system exports coordinate system data as EPSG code without expanding it to the coordinate system definition.
  • State Plane coordinate systems are merged into a single roster supporting different representations for different dataports with many holes found and fixed.
  • GDAL dataport allows working with GDAL 2.0.x, 2.1.x or 2.2.x and automatically selects the latest version available with automatic adjustments for the call interface.
  • The command window can be saved as a query using Edit - Save as Query. Invoking the command creates a new query component, copies the current text from the command window, then selects the created query in the Project pane and puts the focus into the Project pane list so that clicking Enter opens the new component.
  • A virtual map created by opening a drawing / image / labels and dropping other components into the window from the Project pane can be saved as a persistent map using Edit - Save as Map.
  • The Component pane displays the number of records in a table if it is available. Tables that make the number of records available are: all tables in MAP files, tables in file data sources with some fields cached in .MAPCACHE files, tables in remote databases. (We are working to extend the list to cover file data sources without .MAPCACHE and some web data sources. The most significant type of tables where the number of records is not available is queries.)
  • Counter values like the number of records are printed with thousands separators.
  • The View - Reapply Filter / Order command is split into View - Filter - Reapply Filter (applies both filter and order) and View - Order - Reapply Order (applies just order).
  • The table window supports the new View - Filter - Filter Fetched Records Only command. The command switches between applying filters to the fetched portion of the table (checked, the default) and applying filters to the entire table (unchecked). In the latter mode, altering the filter or reapplying it refills the table. Switching between modes reapplies the filter.
  • If the table is smaller than the current record limit for the table window, the filter always operates on the already fetched records and the option does not play a role. (Whether the table is below the limit is detected by requesting the number of its records, so the table has to be able to determine it = if the table does not report the number of records in the Component pane the optimization is turned off.)
  • Switching from applying the filter to the entire table to applying it to only the fetched records requires reapplying the filter a second or so after. We will likely do this automatically in the future.
  • The selection box in the map window uses Shift to switch between adding to the selection (no Shift, the default) and subtracting from the selection (Shift). The current choice is indicated using the cursor.
  • The selection box in the map window uses Ctrl to switch between selecting objects touching the box (Ctrl, the default because the selection box starts with Ctrl-click) and selecting objects contained within the box (no Ctrl, after you started the selection box using Ctrl-click depress Ctrl). The current choice is indicated by the thickness of the box border (touching uses the standard border, contained uses the border that is twice as thick).
  • The File - Create - New Layout command creates a new layout. The New Layout commands in the context menus in the Project pane create a new layout. The Project pane supports filtering the component list to show only layouts. The Project pane supports copying and pasting layouts. Layouts can be exported to MML.
  • A layout contains zero or more layout frames. Opening a layout allows dragging and dropping components from the Project pane to create new layout frames. Unlike with a map, it is possible to drop the same component into a layout multiple times, creating multiple layout frames managed separately. (The layout window currently does not allow deleting or reordering layout frames, this is coming.)
  • The layout window supports pans and zooms similarly to the map window. The View - Zoom to Native command sets the display scale as close to the physical scale as possible (the scale accuracy depends on the physical dimensions of the screen area reported by the display driver, most drivers report the same values regardless of the monitor so the scale is fairly close but not exactly accurate).
  • Alt-clicking a layout frame displays drag handles which can be used to resize or move the frame. The frame automatically snaps to other frames and to page edges. Pressing Escape unselects the frame.
  • Double-clicking a layout frame selects it for pan and zoom, switching pan and zoom actions (drag to pan, mouse wheel to zoom, right-click and drag to zoom to rect, plus View - Zoom Xxx menu commands) to work on the contents of the frame instead of on the layout window. Pressing Escape unselects the frame. (The rendering scale in layout frames does not currently reflect the scale that will be used during printing. This is going to be changed.)
  • Double-clicking a layout frame that is partly off-screen or is too small zooms the layout window to the frame prior to selecting it for pan and zoom.
  • The layout window renders components in layout frames using multiple threads, similarly to the map window.
  • The layout window allows changing the size, orientation and margins for the printed page using File - Page Setup. The layout frames are automatically repositioned to stay in the new printable area: if the new printable area is bigger, the frames move towards the center, if the new printable area is smaller, the frames try to move to stay within it and then reduce in size.
  • The layout window allows printing the layout using File - Print. Printing the layout uses either the advanced or the basic rendering engine, as specified in options. Printing notes:
  • All vector and text objects are rendered at their true point size, in both rendering engines.
  • Images are rendered with the resolution specified in the Print dialog, in both rendering engines.
  • The advanced rendering engine performs vector antialiasing using the mode best suitable for the device. The basic rendering engine does not perform vector antialiasing, but this is partly compensated by the resolution which is normally significantly higher than for display.
  • Text objects are antialiased in both rendering engines.
  • The advanced rendering engine supports layer alpha for all types of layers. The basic rendering engine only supports layer alpha for images.
  • (As a general rule, we suggest using the advanced rendering engine. Also, we do test against a lot of printer drivers, but since the number of printers is so immense, we pay special attention to the system printer driver for PDF, which is built into Windows 10. That way, if something does not work with a real printer, the user can at least compose a PDF and print that.)
  • The map window scales all data to their point sizes according to the display resolution
  • The layout window avoids recomputing queries for components built on them after changes to the layout. The layout window shares the results of computing queries between layout frames: if the same component built on a query is used in multiple layout frames, the query will be computed only once.
  • (Fix) The layout window displays and prints images based on a table with a btree index on level-x-y fields (the format used by old Radian builds and occasionally used by some dataports when image data is actually stored that way).
  • (Fix) The query engine no longer fails to pass or receive tables from script functions. (Example uses of the feature follow.)
  • Expression objects in scripts can take table parameters. (Examples follow.)
  • Command objects in scripts can take table parameters. Inline queries called from scripts can take table parameters. (Examples follow.)
  • The PBF dataport reads data faster.
  • The PIX dataport recovers after invalid vector data.
  • The image servers dataport allows server URLs to include control sequences. URLs for built-in image servers have been expanded to include control sequences. Old-style URLs stored in data sources created before this build are supported, unless they have been edited manually (if so, the user has to re-create the data source).
  • {x}, {y} - specify the X and Y coordinates of a tile,
  • {zoom} - specifies the zoom level of a tile (zoom level is a numeric value similar to an image level but going in the reverse direction: the image level of 0 is the most detailed level, while the zoom level of 0 is the least detailed level supported by the server),
  • {key} - specifies the API key if entered by the user,
  • {keyApp} - specifies the application key if entered by the user,
  • {lon}, {lat} - specify the longitude and latitude of the center of the requested tile,
  • {switch:a,b,c} - specify the server selector for load balancing, the choices after the semicolon are available alternatives.
  • A full list of control sequences will be in the documentation.
  • Creating a new image server data source allows selecting the 'Custom' image server and supplying a custom URL with the control sequences. Custom image servers use additional parameters such as the tile size (defaults to 256) and the zoom range (defaults to 0 through 20).
  • (There are many sources of custom image servers. This page, for example, lists many custom image servers designed for use with OSM: https://josm.openstreetmap.de/wiki/Maps. To try, say, the 'Hike & Bike' server, click it in the list to locate the URL, then use that URL with the custom image server in Future: http://{switch:a,b,c}.tiles.wmflabs.org/hikebike/{zoom}/{x}/{y}.png )
  • Connection strings for data sources generated by the UI have been cleaned up to avoid converting boolean and numeric values to strings.
  • New query function: ValueSequenceRandom - takes the number of values to generate and a seed value, and returns a table of floating-point random values between 0 and 1. If the seed value is zero or negative, it is ignored and the random generator uses a seed value unique for the session.
  • New query function: ValueSequenceRandomInt - takes the number of values to generate, an integer limit and a seed value, and returns a table of integer random values between 0 and limit-1. If the seed value is zero or negative, it is ignored and the random generator uses a seed value unique for the session.
  • (For both functions above, the random number generator is xorshift128+.)
  • (Fix) Moving or resizing a layout frame no longer snaps it to itself.
  • Printing a layout tracks progress.
  • (Fix) Tables in MAP file no longer fail to accept more than 2 billion variable-length values. Attempting to insert too many values was producing a crash. Tables created before the fix will no longer crash, but will continue to reject values above the limit (there is no way to accept values without re-creating the table). Tables created after the fix will not be subject to the limit.
  • (Fix) Working with metadata for system tables on remote databases automatically appends the default schema to the name of the table on both reads and writes.
  • (Fix) Dataports for remote databases no longer sometimes fail to create, rename or delete folders.
  • Web dataports report sizes for returned tiles that do not match the size advertised by the server. (This allows creating another data source with the actual tile size for the server that misreports it.)
  • There is a new MXB dataport for compressed MAP files. MXB files allow storing all types of data available for a MAP file can, but they do not store data that can be re-created dynamically (such as indexes or values for computed fields), and they compress all data they do store. MXB files serve two main purposes: they provide reliable backups which are resistant to changes in MAP file structure, and they provide means to exchange data in compact form.
  • The new File - Export Project command allows exporting the opened MAP file as an MXB file. Linking an MXB file automatically uncompresses it into a MAP file with the same name and then opens the produced MAP file. Making changes to the MAP file opened that way will not write changes back to the MXB. Opening a linked MXB file that has already been uncompressed into a MAP file will not overwrite the MAP file even if it has been changed after it was uncompressed.
  • Compressing and uncompressing an MXB file tracks progress and can be canceled.
  • Right-clicking a data source in the Project pane allows exporting it as either MAP or MXB.
  • The File - Open command allows opening either MAP or MXB.
  • Dataports for remote databases support Unicode names for all database objects and all schema items. (Temporary exceptions: ODBC and Oracle.)
  • (Backstory: We have always supported Unicode in string values and string parameters. However, support for Unicode names of fields and tables has been very sporadic. The dataports relied on the locale of the connecting user to be similar to the database locale and even that was not very consistent and did not work in all places. The change extends all database connections with new logic that allows using Unicode names in queries according to the rules for the specific database, and adds that logic for all supported database types. Two temporary exceptions are ODBC and Oracle, we are working to allow Unicode names there as well. The change allows seamlessly working with tables, views, fields, indexes and other native database constructs with Unicode names both from the UI and programmatically.)
  • Connecting to a DB2 database uses ODBC instead of the previously used interface specific to DB2 (CLI). (CLI was similar to ODBC and over time the differences between the offered functionality were becoming ever smaller until they almost completely disappeared. We no longer see any need to support a specialized interface that requires separate configuration. A note to DB2 users: connecting to a 64-bit version of DB2 requires installing the latest fix pack dated December 7, 2017.)
  • Database.Export and Database.ExportFile script functions accept empty string for a component name to export the entire database.
  • (Fix) Exporting a database to a MAP or MXB file correctly handles autogenerated fields. (The fix allows exporting data sets like SQLITE or GDB.)
  • Exporting a database to a MAP file builds intermediate levels for images with an rtree index on x-y-tile fields.
  • Opening an MXB file builds intermediate levels for images with an rtree index on x-y-tile fields.
  • File - Save As sets the initial filename to the currently used one.
  • File - Export Project sets the initial filename to that of the currently opened MAP file.
  • Exporting an MXB file reports the number of exported records and bytes.
  • SELECT INTO reports the number of inserted records and bytes.
  • Linking an ADF or GDB data set sets the name of the created data source to that of the folder.
  • Linking an SDTS data set sets the name of the created data source to the filename prefix (SDTS data sets consist of multiple files named xxxxYYYY.DDF with the YYYY.DDF parts dictated by the standard).
  • Dropping an MXB file from Windows Explorer into the application window opens it.
  • Installation packages register the extension and the icon for MXB files. (This particular change cannot be tested using a portable install.)
  • (Fix) Reading a PNG file no longer sometimes misinterprets transparent pixels as black.
  • (Fix) Reading a malformed PNG file no longer has a potential to crash.
  • Reading a 3d geometry value in a SHP file forces invalid Z values such as NaN or Inf to 0.
  • Many tables in ADF and several other dataports report the number of records they contain.
  • (Fix) Connecting to a WFS server no longer fails to read tables with no identity data. (If the server exposes a table without identity data, it is better to turn off the cache for it. Without caching, zooming to a particular extent in such a table will request data only for that extent. With caching, zooming to a particular extent will try to avoid repeat requests and since the table has no identity data to determine duplicates, the system will be fetching an entire table.)
  • The main change is the switch to a different storage format for maps. The new format uses a single property per layer with JSON data. This has numerous benefits: easier to recover from errors, easier to edit manually, easier to work with programmatically, etc. (We are doing this change now rather than later to decrease the number of compatibility issues after the release of 9. The less the number of MAP files that use the old format, the better.)
  • All UI tools working with maps (map window, layout window, all panes) support both the old and new format. Attempting to change a map that uses the old format seamlessly converts it to the new format. Maps in the new format cannot be read by earlier builds.
  • (Fix) The New Map dialog no longer sometimes writes layers in a wrong order, if there are more than 10.
  • The background color edited in the Layers pane is always a property of a map. Opening a drawing, image or labels component and attempting to edit the background color will change the background color of a temporary virtual map and will not write these changes to the component. (This is similar to how altering the opacity of such a component using the Layers pane will not save the change to the component - this is a property of a map.)
  • The map window saves the selection state for layers used by the Layers pane.
  • The ODBC dataport supports Unicode names for tables and all other database objects.
  • The Oracle dataport supports Unicode names for tables and all other database objects. (This and previous item conclude the set of changes for Unicode names in dataports. Unicode names are now supported for all databases that allow them.)
  • The built-in ODBC driver (used to expose data in MAP files to other applications) supports Unicode names for tables and all schema items.
  • The DBF dataport uses encoding info stored in an accompanying CPG file (used by ESRI products to save Unicode data as UTF-8).
  • The DBF dataport supports currency values.
  • The DBF dataport supports memo fields in FoxPro-compatible format. (In addition to memo fields in the original dBase format.)
  • Opening a MAP file created with Manifold 8 imports background color, layer opacity and layer shown / hidden flags for maps.
  • The layout window displays layout frames in the Layers pane. The Layers pane allows reordering frames, showing and hiding frames. Hiding an active layout frame (the frame that is being resized or moved using the handles or the frame that is being panned and zoomed) makes it inactive. Moving or resizing layout frames ignores hidden frames during snapping.
  • Layout frames support opacity edited through the Layers pane. The layout window applies frame opacity regardless of the rendering engine, but printing a layout will only use frame opacity if the printing is performed by the advanced rendering engine.
  • The layout window supports selecting layout frames. Selected layout frames are highlighted in both the layout window and in the Layers pane. Ctrl-clicking a layout frame toggles its selection state. Ctrl-dragging the cursor in a layout window selects layout frames using a box. Similarly to map window, pressing Ctrl at the end of the selection box selects all visible frames with any part in the box, and releasing Ctrl selects all visible frames entirely within the box. Using Shift with the selection box unselects frames instead of selecting them. Layout frames can also be selected from the Layers pane.
  • The layout window supports the Edit - Select All / Select None / Select Inverse commands.
  • The layout window supports the Edit - Delete command that deletes selected layout frames. Layout frames can also be deleted from the Layers pane.
  • Moving a selected layout frame in a layout window moves all selected frames.
  • (Fix) The layout window correctly maps Delete key to Edit - Delete.
  • The layout window displays coordinates for the active layout frame (the frame selected using Alt-click) in the Record pane. The coordinate values are displayed in a new tab named 'Style' (the name might change) and are expressed in millimeters from the corner of the page without counting the margins. Editing the coordinate values does not apply changes to the frame until the user presses the Update Record button at the bottom of the pane. Moving the frame in the layout window will undo changes made in the Record pane.
  • Pressing Ctrl-Enter or right-clicking an arbitrary place in the layout window applies changes to the active frame made in the Record pane. Pressing Ctrl-Backspace in the layout window cancels changes. (Pressing Escape also cancels changes because it makes the active frame inactive.)
  • The coordinate values displayed for the layout frame in the Record pane switch between millimeters and inches using a combo. The choice of units persists for the duration of the session.
  • The layout window supports the Move Previous / Move Next commands in the Record pane and moves between the visible frames.
  • Layout frames support background color, set from the Record pane. If the frame is semi-transparent, the background is rendered as a semi-transparent layer under frame contents (in other words, the background color is applied both to completely transparent pixels such as missing pixels in rasters and free space in vectors, as well as to semi-transparent pixels such as pixels with intermediate values of the alpha channel in rasters or any data in semi-transparent map layers).
  • Printing semi-transparent data avoids aliasing effects when rendering to PDF.
  • The Oracle dataport reads binary values using an improved technique that minimizes the need for locking (much friendlier to multiple threads).
  • The Oracle and SQL Server dataports support deleting virtual tables used to expose SDE data.
  • The Oracle dataport supports renaming and deleting of virtual images created for native Oracle rasters.
  • The PostgreSQL dataport supports renaming and deleting of virtual images created for native PostgreSQL rasters.
  • The map window displays styles for labels in the Style pane and allows editing them.
  • The font picker window used for labels in the Style pane displays a drop-down list of the fonts available in all modern versions of Windows, plus a choice for a custom font.
  • Layouts support label frames. To add a new label frame, select the new View - Mode - Create Label tool, then click a location in a layout. The layout window will create a new frame with the default text and size and will select it in the Record pane to allow changing text. Zooming a layout window adjusts the size of the text in label frames to reflect printed size.
  • The Layers pane displays the text for label frames in layouts.
  • The Record pane allows editing color, background color, text style, font and font size for a label frame in a layout.
  • (Fix) The icon for the default cursor mode has been adjusted to line up with icons for other cursor modes.
  • (Fix) Switching from another application into Future by clicking a layout window that was previously inactive no longer fails to make it active.
  • Moving a frame in a layout window first tries to fit it into the page boundary before cutting it to that boundary. Resizing a frame skips the fitting and cuts the new rectangle to the page boundary. Snapping of the resulting rectangle to the rectangles of other frames is done after fitting / cutting, this makes it more predictable.
  • The Record pane allows displaying and editing the position of a layout frame in points (a point is 1/72 of an inch).
  • The Record pane allows zooming to the current record. (This works for all types of records - drawing records, image records, layout frames.)
  • The majority of dataports that expose maps do so using the new map format. (The only current exceptions are GPX and KML.)
  • Format pickers for layout frames in the Record pane show format values even if those values cannot be edited (for example, because the layout component is readonly).
  • Format pickers for layout frames in the Record pane show rotations and sizes as they are shown in the Style pane. (Numeric values instead of format samples).
  • (Breaking) The names of properties used to store font sizes in labels and layout frames have been changed to follow the unified naming scheme.
  • Zooming to a point from the Record pane keeps the current scale. If the point is already visible in the window and is not on the edge of the view, zooming to it keeps the current view entirely.
  • The Record pane shows formatting values for drawing objects in the Style tab.
  • Drawings support per-record formatting. Per-record formatting is controlled from the Style pane. To turn per-record formatting on for a particular drawing, create a new text field, open the drawing, open the Style pane, click the Per-Record Style button at the top, then check 'Use per-record style', select the created field to store per-record style data in and click OK. The Record pane will then allow changing formatting values in the Style tab. A particular record can override only a subset of formatting values or it can override all of them.
  • Format pickers in the Record pane indicate overridden formatting values using an icon and allow resetting overridden formatting values back to the defaults using the 'Default' choice in the dropdown menu.
  • The Record pane protects the field used to store per-record formatting from being edited in the Values tab by making it readonly.
  • The Record pane disables editing per-record formatting if the field used to store formatting data is computed (and thus readonly).
  • The PBF dataport displays progress and allows canceling the initial caching phase.
  • All dataports that expose maps are now using the new map storage format.
  • Dataports for Oracle and other databases use a long text type for the value field in the MFD_META table.
  • The OLE DB dataport supports UUID fields.
  • Dataports for SDE and similar technologies built on top of databases allow names that contain quote characters. (This was the last bastion in the big fight for removing all restrictions on names in databases except those imposed by the database itself.)

Experience Release 9 Power in a Free Tool

See Manifold Viewer in Action. Manifold Viewer is a read-only subset of Manifold Release 9. Although Viewer cannot write projects or save edited data back out to the original data sources, Viewer provides phenomenal capability to view and to analyze almost all possible different types of data in tables, vector geometry, raster data, drawings, maps and images from thousands of different sources. Manifold Viewer delivers a truly useful, Release 9 technology tool you can use for free to experience Release 9 power firsthand. See Viewer in action Watch the Manifold Viewer Introduction YouTube video.

Get Manifold Viewer


Special Offers

Spring special! Manifold special offers end at midnight GMT on 31 July 2018:

  • Buy Manifold 9 Universal before 31 July 2018 and get a $200 discount off the regular price of $595 for a total price of only $395. Your Release 9 Universal license runs 64 bits and 32 bits and never expires, allowing immediate use of Manifold Release 9 and all Release 9 Cutting Edge builds at Universal level now and in the future.
  • Buy the two product bundle of Manifold 9 Universal plus Manifold 8.00 Universal x64 before 31 July 2018 and get a $245 discount off the regular, combined price of $840 for a total price of only $595.
  • Trade in an unbundled Radian Studio serial number on a Manifold 9 Universal license before 31 July 2018 and save $400 off the regular price of $595 for a total price of only $195.
  • Acquired your Radian Studio license in a bundle with Release 8.00 Universal? Trade in a bundled Radian Studio serial number on a Manifold 9 Universal plus Manifold 8.00 Universal x64 bundle before 31 July 2018 to acquire the bundle for a total price of only $195. The new Release 9 license will replace your old Radian Studio license, and the new Release 8.00 Universal license will replace the old Release 8.00 Universal license.

Buy the gisadvisor online Big Data and GIS training course on udemy.com before 31 July 2018 and get 75% off the regular price. Click here to use the special discount code. The gisadvisor training courses have a 95% user rating, 4.7 out of 5. Wow! This is a third party training course not affiliated with, but recommended by Manifold. This offer ends at midnight GMT on 31 July 2018.

Buy Now via the Online Store

Buy Manifold products on the Online Store. The store is open 24 hours / seven days a week / every day of the year. Orders are processed immediately with serial number email sent out in seconds. Use Manifold products today!

 Click to begin shopping


Release 9

Portions of Baltimore city in Maryland, LiDAR data served in ESRI ArcGIS REST protocol by a web server run by Salisbury University.

About Manifold

Manifold products deliver quality, performance and value in the world's most sophisticated, most modern and most powerful spatial engineering products. Total integration ensures unbeatably low cost of ownership. Tell your friends!

ml>