Release 9 for Fast GIS

Release 9


How to Buy


Contact


Manifold Users

  • Defense
  • Intelligence
  • Health and Human Services
  • Federal, State and Local
  • Communities
  • Facilities Management
  • Land Administration
  • Taxation
  • Public Works
  • AEC
  • Economic Development
  • Elections and Redistricting
  • Urban Planning
  • Homeland/National Security
  • Disaster Management
  • Fire and Emergency Services
  • Law Enforcement
  • Oil and Gas
  • Forestry
  • Mining
  • Insurance
  • Health and Medical
  • Retail
  • Agriculture
  • Computational Finance
  • Manufacturing
  • Transportation
  • Real Estate
  • Banking
  • Marketing
  • Media / Entertainment
  • Supply Chain
  • Autonomous Vehicles
  • Drones
  • Electric
  • Gas
  • Pipeline
  • Telecommunications
  • Internet
  • Ride Sharing
  • Water Utilities
  • Airports & Aviation
  • Traffic Analytics
  • Highways
  • Railways
  • Ports & Maritime
  • Public Transport

What's NewServe maps without a web server!

News + New Features in the Latest Build

Even Better than Before

News from Manifold - Every few weeks the latest Manifold® build adds new features. This page presents highlights from the latest builds. See the What's New User Manual topic for a complete list of new features. New builds are free updates.


New Base Build · Get Feature Info

01 October 2023: Build 181.0 is a Base Build that is recommended for all users. It implements a huge new GetFeatureInfo request capability that opens the door to WMS based click-to-get-data websites and OGC tools. It incorporates all improvements from the 9.0.180.x series of builds.

Build 181.0 also introduces a new policy to remove expiration dates for Cutting Edge builds. That prevents websites from timing out when Cutting Edge builds are used for production sites, and it positions builds for planned developmental projects.

Highlights

  • Base Build - Manifold Base builds incorporate all improvements from the previous few months of Cutting Edge builds. While Cutting Edge builds can include experimental facilities, Base builds are fully supported product configurations that define the standard product going forward. New Cutting Edge builds will add features and bug fixes to the current Base build for those users who want to work with the latest and greatest. After a few months a new Base build is issued that incorporates changes and the cycle starts again. Base builds are also published as full Windows Installer installations in addition to portable installations.
  • GetFeatureInfo - A GetFeatureInfo request in a WMS URL launches a query to fetch data for whatever object is under the specified cursor position in the specified WMS bounding box and image size. It provides a key OGC capability to fetch data when users click on a spot of interest in a web site or WMS-using tool.
  • Automatic Integration with Server - Manifold's GetFeatureInfo capability is automatically integrated with Manifold Server's WMS and HTTP serving capability. Publish a map from your project with Server and automatically you get GetFeatureInfo capability.
  • Automatic Defaults - Following Server's WYSIWYG (What You See Is What You Get) design, GetFeatureInfo capability exactly matches the interactive Web user interface provided by Server for HTTP pages. Configure your maps just once using the Layers pane in the Manifold desktop, arranging the layers in the stack you want, clicking any layers to set as pickable for data display or not, and that works for both the regular HTTP web pages Server creates and also for GetFeatureInfo querying through WMS. It all works automatically with just a few clicks in the desktop authoring environment.
  • Automatic Layers - No need to specify QUERY_LAYERS and LAYERS parameters: Server takes care of that automatically. A map can have dozens of layers and the same precedence and pickable status used for the desktop and regular Web pages also applies in WMS GetFeatureInfo requests. That simplifies URL strings for WMS and reduces errors from wrongly-specified layer names.
  • JSON Output - Server's GetFeatureInfo output uses INFO_FORMAT=application/json to generate neatly formatted data using JSON format. JSON has emerged as a modern format for web sites, being easily consumed by web text and data styling engines, and also easily imported into many data tools.
  • Easy to Test - URL strings to connect to Server using WMS to get feature info can be entered into browsers, to easily test URLs.
  • No Expiration - Starting with build 180.0, all future Cutting Edge builds will no longer expire 90 days after issue. That allows developers to keep using Cutting Edge builds for as long as they want, to compare new builds and to test experimental facilities that will be issued in future builds. Cutting Edge builds have proven so reliable that many users deploy them in production web servers, so removing expiration dates also prevents web sites from halting if admins do not remember to update a server to newer builds.

New Video

Using WMS - A fast-moving tutorial video that covers a lot of ground, showing how to work with WMS sites served by Manifold Server. Manifold Server not only creates web sites as an Internet map server, it also automatically provides OGC WMS access to those sites using WMS connection strings.

The video begins by launching three example websites published to the web by Manifold Server, briefly demonstrating those sites and showing how to get attributes for objects shown using the Info button in the web user interface.

The video then moves on to showing how to use URL strings in a browser to get the capabilities of the WMS server using GetCapabilities requests. Next, it shows how to use a GetMap request to generate an image of the desired size in the browser covering a specified bounding box region of the map.

After that we show how to use GetFeatureInfo URLs in a browser to get attributes for objects in the map in a specified location. The video covers use of both projected coordinates, like in Pseudo-Mercator web maps, and also latitude and longitude coordinates in maps using lat/lon coordinate systems.


WMS Server

20 August 2023: Build 180.8 adds OGC WMS server capability to Manifold Server's HTTP server publication to the web. The support is automatic and does not need any additional configuration.

Build 180.8 also includes minor fixes and increases limits in drop down lists to support tables with huge numbers of fields and projects with thousands of components.

WMS ServerManifold Server supports OGC WMS 1.3.0

  • OGC WMS - Manifold Server's HTTP server now supports OGC WMS 1.3.0, generating a WMS page.
  • Automatic WMS - WMS support is automatic and does not need any additional configuration. To connect to the WMS server, add /wms to the end of the URL for the web page served by the HTTP server for the WMS URL. For example, if Server is serving an HTTP page to http://127.0.0.1:8080, the WMS URL will be http://127.0.0.1:8080/wms.
  • Single Layer - The published component is served to WMS as a single layer. Future builds will likely expose multiple layers to allow turning them on and off via the WMS API.
  • Automatic Coordinate Systems - If the published component's coordinate system is an EPSG coordinate system, the coordinate system of the WMS layer wil be that coordinate system. If the published component's coordinate system is not an EPSG coordinate system, the coordinate system of the WMS layer will be the default pseudo-Mercator coordinate system, with the published component's coordinate system reprojected on the fly into pseudo_Mercator.
  • PNG is pronounced "ping" - Images produced by the WMS interface are always PNG with transparent background. Future builds will allow specifying a solid background with desired background color via the WMS API.
  • Partial PNG Transparency by Layer - Server uses smart transparency to generate PNGs for WMS. If a layer in the originating Server component uses partial transparency, that same partial transparency will be used for pixels involved in that layer when constructing the PNG images served by WMS.
    Vector layers in the original componentEclipse path rendered in WMS with partial transparency
    That allows using the resulting WMS layer in WMS clients as a layer above other layers, which will be partially visible through the partially transparent sections of the PNG.

    The first image at right shows the original component with partially transparent eclipse path. When rendered in WMS the eclipse path pixels retain the same partial transparency, allowing the bathymetry layer used in the WMS client below the WMS image to be seen. The other layer, showing islands, is fully opaque and is rendered that way in WMS. See that same effect in the new video showing WMS use.
  • Non-virtual Layers - Rendering images for WMS does not render virtual layers such as North arrows, scale bars, legends or the Layers pane background color. This is done to support WMS clients (first and foremost 9 itself) that cache rendered WMS tiles and stitch final screens from cached data.
  • REST Endpoints - New HTTP server endpoint:
    • /wms - OGC WMS entry point.

Other

  • Vast Numbers of Fields and Components - The number of choices in drop-down lists has been increased from 1000 to 4000. The increase primarily was made to support extremely long lists of field names when working with tables with huge numbers (over 1000) of fields, and to support very long lists of components when projects contain thousands of components.
  • 4000 Choices is Plenty - (Fix) Drop-down lists for fields or components no longer fail to limit the number of choices to the maximum limit (now 4000 choices).
  • Legends Auto-Adjust - (Fix) When rendering legends in Server generated web pages, the Javascript control (web UI) no longer ignores changes to on/off layer states. Previously, turning layers on/off in the layers button of the web UI toolbar would turn layers on/off but if a legend was shown the legend would not be updated to turn those layers on/off.
  • Filters and Joins - (Fix) Attempting to filter or to join a table with an RTREE index on x, y, or tile fields and no BTREE indexes no longer sometimes fails, returning no records.

New Video

10 Minute Tutorial - WMS from Manifold Server - New in Release 9 : WMS serving

Universal and Server editions of Manifold Release 9 have the built-in ability to host websites using Manifold Server. What's new is how Server automatically creates a WMS server page when you create a GIS-enabled web page with Server. There's no programming required and no extra configuration required.

In the first two minutes, this video shows how to connect with an WMS client to a WMS data source automatically created by Server for the example demo page from the Manifold web site.

Next we show variations, like how transparency works, and how to connect to an alternate version of the project that has been set up to use a different background layer, a hill-shaded terrain elevation layer for the entire world.


Expanded Desktop and Web Interfaces

06 August 2023: Build 180.7 adds conveniences to the desktop user interface as well as more information in the web user interface. The new conveniences make it quicker to pick commands with shortcuts and enable fast choosing of fields in drop-down menus, even when there are hundreds of fields to choose from.

In the web user interface, if a description has been entered for a location or a layer, that description will automatically appear just before the location or layer entry in the web UI's menu tools for picking a location or turning a layer on and off.

Desktop InterfacePing a record to see it easily

  • Access Keys Always Available - Menus always use access keys for menu commands, even if access keys are hidden. Access keys in Windows provide keyboard shortcuts to launching commands from menus. Those shortcuts can now be used whether access keys are displayed or not.
  • Access Keys in Automatic Menus - Access keys are also turned on for automatic menus that are generated in Manifold dialogs and panes, for example, in the lists of fields that can be picked when choosing a field in the Transform pane. That makes it easy to pick a field in the Transform pane field picker dropdown: click on the picker box and enter the first letter in the field name desired. That will jump to the fields that start with that letter, and then the up/down arrow keys will move between the fields to pick exactly the field desired. It's a great way to pick a field when tables have hundreds of fields.
  • Info Pane Ping - The Info pane allows pinging the picked record in a map window. Pinging shows a sequence of circles with decreasing radius centered at the record.  Pinging helps locate the record on a big and / or busy screen.  
  • Ping Frames in Layouts - The Info pane allows pinging the picked frame in a layout window. That can make it easy to find small elements in a complex layout with very many frames.

Expanded Web Interface

  • Descriptions for Locations - Any descriptions added for a Location in a map served to the web by Server will automatically appear in the Locations web toolbar button's list. Adding short descriptions is a great way to make Locations choices self-documenting and easily understood by visitors to the page.
  • Descriptions for Layers - Any descriptions added for a layer in a map served to the web by Server will automatically appear in the Layers web toolbar button's list. A few words describing each layer can make it much easier for users to pick the layers they want to get the info or visual effect they desire.

Launch Hyperlinks from Web Maps

23 July 2023: Build 180.6 expands the Info Tool in the Manifold Server web user interface to launch email and URL text values as hyperlinks in a new browser window. The Info tool has also gained a dropdown list control that allows specifying the layer from which Info tool clicks show field data. Build 180.6 also fixes quirks in the prior experimental build to create a robust cutting Edge build suitable for production use.

Info ToolChoose a layer for which attributes are shown

  • Launch Hyperlinks - The Info tool in the Javascript control (web UI) shows text fields that have been styled as email or URL styles as hyperlinks. When clicked in the Info tool display, the hyperlinks launch in a new browser tab.
  • Choose Layers for Attribute Display - The Info tool's pane provides a dropdown list that allows specifying the layer from which an Info tool click picks data. The available choices are limited to layers that can be turned on or off that also can be picked. The dropdown list provides a list of layers, plus an auto choice (the default) that picks data from the topmost visible layer. If only one layer in the displayed map is visibule and can be picked, the dropdown list box does not appear.
  • Precision Clicks - The Info tool now checks the click location against object geometries instead of object bounding boxes, to provide precision clicks no matter how complex object geometries may be.
  • REST Endpoints - New HTTP server endpoint:
    • /info - Now supports an optional layer=xxx parameter, which specifies the ID of the layer to pick data from, as returned in the layers=[...] configuration section.

Other

  • GPKG Materialization - When exporting to GPKG or SQLite a virtual component (such as a drawing) created from a query, the system automatically materalizes from the query a results table to export with the component.

New Videos

Fast and Easy Multiuser Editing - See how easy it is using Manifold Release 9 to do multiuser editing of the same layer.

Manifold supports simultaneous multiuser editing of layers when those layers are stored in a multiuser database like PostreSQL, Oracle or similar. However, we can also use a simple multiuser file database like SQLite that is a lot easier to set up.

This video shows how incredibly easy it is to set up a GPKG file (the spatial equivalent of SQLite) for multiuser editing. In moments we create a Manifold map of Mexico that can be edited by multiple users working on different machines at the same time. Super!

Persistent Cache for Websites - Universal and Server editions of Manifold Release 9 have the built-in ability to host websites using Manifold Server. Websites hosted on Server often use third party web sources for background layers, such as image servers from Bing, Google or OpenStreet Map.

This video shows how to set up a persistent cache in an SQLite file that automatically serves tiles from third party web sources to the website without having to repeatedly fetch the same tiles for many different visitors to the website. Using cache can provide dramatically better performance, and it can save money when an API key must be used to fetch tiles from paid sites like Bing or Google.

The video shows how using an SQLite file to host the cache, which for most websites eliminates the need to stand up a more complex database such as PostgreSQL, Oracle or similar enterprise class DBMS.

Dynamic Editing of a Live Website - Update data and edit layers in a website without pausing it or shutting it down. We use Manifold Release 9 to create a website that shows parcels in a town that have been saved to a simple, easy to create, multiuser file database in a GPKG file.

That allows Manifold to serve a website that can be browsed by visitors while simultaneously desktop sessions of Manifold can be used to dynamically update the contents of the website without shutting down the website. That is perfect for websites that show parcel data for towns, where administrators can use desktop sessions of Manifold to update information such as the owners of parcels or to correct the shape of parcels.

The video also shows how to take a few moments to create an external cache that allows re-use of tiles served by OpenStreet Map or other third party web layer suppliers. The project served to the web gets data from two external data sources, both of which are multiuser and both of which are created with just a few clicks. Super!


Info Button for Attributes

9 July 2023: Build 180.5 is an experimental, cutting Edge build that adds an Info tool to the web server user interface. The Info tool reports attributes (field values) for a clicked object.

Info ToolDefault web page toolbar

  • Info Tool - The Javascript control (web UI) used by the HTTP server includes a new Info tool. Clicking the Info tool changes the cursor into a cross cursor. Clicking on the map with the Info tool active takes one of the objects under the cursor and shows attribute field values for that object. Retrieving field values from the server is performed asynchronously without reloading the page.
  • Dynamic Visability - The Info tool picks the topmost layer that has a Layers pane pick mode other than "no pick" and which is currently visible, excluding layers that are currently hidden, for example, dynamically hidden by min / max scale settings, explicitly hidden by the layers button in layers in the web UI toolbar, or implicitly hidden in the map and not appearing in the layers button list.
  • Ordered by Schema - The Info tool shows all fields in the order specified by the schema except binary fields, which are not reported.
  • Automatic Field Styling - The Info tool automatically formats field values according to the styles set in the table window.
  • Mobile / Touch Screens - The Info tool works on touch screens.
  • REST Endpoints - New HTTP server endpoint:
    • /info - Returns data for the Info tool as JSON, supporting the following parameters: bounds, size and layermod with the same meanings as in the /map endpoint, center=XX,YY specifying click coordinates in pixels (the default is the center of the screen), and radius=RR specifies search radius in pixels (the default is 6, same as on the desktop).

Sample Web Site

Try out the sample web site that shows total eclipses of the sun from 2024 to 2048, including four outstanding eclipses in the next five years in the US, Spain, Egypt, and Australia!

Illustration at right: A reduced size screenshot of the sample web site showing a closer view of the 2024 April 08 eclipse path. Click the illustration to visit the live website.

Pan with your mouse and zoom in and out using the mouse wheel or by clicking the web site's toolbar zoom in / zoom out buttons. As you zoom in, more layers appear to provide more info.

Click the Locations button on the web site's toolbar and choose an eclipse to go to that view.

Click the Info button and click on an eclipse path to see day of the week, date, time, and duration of the eclipse at that place on the path. Click the Info button again to exit Info mode.

Click the Layers button and check/uncheck layer boxes to turn layers on/off and then press Apply. Try the Terrain layer to see a USGS hill-shaded landscape layer.

Hover the mouse cursor over the toolbar buttons to see tooltips. Choose a location that jumps immediately to a view of upcoming eclipses or shows a view for an entire continent. The Layers button allows turning on a terrain layer showing hillshaded terrain, overlaid with country borders if you like. The terrain layer is a 17 GB raster image, served directly from a Manifold project file with no need for tilesets or storage in databases. No coding required!


More Web Stuff · GDAL Updates

25 June 2023: Build 180.4 is a routine cutting Edge build that adds new web server capabilities, upgrades use of optional GDAL capabilities, supports use of GDAL to read rasters in Esri geodatabases, adds useful capabilities when working with Z values, and provides fixes. Manifold includes hundreds of file types and data sources built in and does not require installation or use of GDAL, but if GDAL is installed Manifold is happy to utilize GDAL as well.

More Web Stuff

  • Zoom on Cursor Position - Zooming using the mouse wheel in the Javascript control (web UI) centers on the location under the initial cursor position, the same as in the desktop Manifold UI.
  • URL base - The HTTP server supports a new -urlbase:xxx command-line option to specify the URL base. The default is /. The option is useful when the HTTP server is used together with a general-purpose web server.
  • REST Endpoints - New HTTP server endpoint:
    • /version - Returns server version and server start date and time in plain text.

GDAL and Z Values

  • Support for New GDAL Builds - The GDAL dataport now supports GDAL 3.4.x, GDAL 3.5.x and 64-bit raster data, GDAL 3.6.x, and GDAL 3.7.x and signed 8-bit raster data.
  • Rasters in Esri GDB - Manifold now can use GDAL 3.7.x to read rasters in Esri geodatabases.
  • Retain Z Values - The GeomNormalize, GeomToShapes, and GeomToShapesEsri query functions retain Z values instead of discarding them.
  • SHP Export with Z values - Exporting areas with Z values to SHP no longer discards Z values.

Expanded Web Map Interface

03 June 2023: Build 180.3 is a cutting Edge build that extends Manifold Server capabilities for HTTP map serving, including automatic adjustment of the default web page user interface for mobile devices, the ability to turn layers off and on, support for locations, and the ability to set display image size.

ODBCTurn layers on and off.

  • Excel 365 - The ODBC driver supports extra connection options required by newer versions of Excel 365.

Illustration at right: A Layers button on the toolbar makes it easy to turn layers on and off in the web map.

Serving Web Maps

  • Turn Layers On and Off - The HTTP server's Javascript control (web UI) layers toolbar button shows layers provided via the configuration data in a drop down pane with check boxes and allows turning them on or off and then saving changes using an Apply button.
  • Set web map size - The HTTP server allows -cx:xxx and -cy:xxx command line options to specify the image size in pixels. The maximum allowed value for each option is 4096 pixels. If neither CX nor CY is provided, the image size is 800 x 800 pixels. If both CX and CY are provided, the image size is CX by CY. If only CX or CY is provided, the image size is CX by CX or CY by CY, providing a quick way to set square image sizes by specifying only one parameter.
  • Invalid requests - The HTTP server more efficiently handles invalid requests with attached content. (Previously they were being rejected later than they could have been.)
  • One instance - Attempting to create a second instance or to reinitialize an existing instance of the Javascript control provided by the HTTP server does nothing. There can currently be only one instance of the Manifold Javascript control per web page. This limitation will be removed in a future build.
  • Safety first - The HTTP server provides safeties if the image size is specified to be very small: If the size of the Javascript control (the web UI) provided by the HTTP server is less than 200 x 200 pixels, the control reduces to a static image and the toolbar will be turned off for lack of space. Panning and zooming using the cursor also will be turned off for lack of a way to get back to the original extent (also, because the image might be too small to do panning and zooming in general).
  • Descriptions - The HTTP server shows the description of the served component below its name. When providing the description for a map, make sure to edit the description of the map component instead of the description of the active layer.
  • Flush toolbar - The Javascript control (web UI) provided by the HTTP server puts the toolbar directly onto the top edge of the map without any gaps, to better use available space.
  • Cache priorities - The HTTP server uses the following priorities for the image cache: full view is prioritized over any other view, and views showing default layers are prioritized over views with some layers turned on or off.
  • Jump to locations
  • Adapt to mobile devices - The Javascript control (default web page) provided by the HTTP server adjusts the UI for devices with a touch screen such as phones: toolbar buttons are made bigger to make them easier to tap with a finger, hover effects for toolbar buttons are turned off, and panning and zooming the map using the cursor is turned off.  Tapping or clicking on the map re-centers it to that spot.
  • Jump to locations
  • Locations Toolbar Button - The HTTP server includes available locations in the configuration data for the Javascript control (web UI). The Javascript control shows locations provided via the configuration data in a drop down menu and allows zooming to those locations.

  • Illustration at right: Pick a location to jump to that view.

  • REST Endpoints - Changes to HTTP server endpoints:
    • /config - A new endpoint: returns the configuration data for the served component as plain text. This is useful as a reference when setting up a web site, for getting layer IDs to use in the /map endpoint, etc.
    • /map - Supports a new parameter: layermod=hXXsYY... to turn layers on or off. The value of the parameter is a string of hXX and sYY commands where hXX forces a layer with an ID equal to XX to be hidden, and sYY forces a layer with an ID equal to YY to be shown unless it is oherwise hidden due to the current scale being outside of the layer's min-max scale range.  h is a mnemonic for hide and s is a mnemonic for show.  Layer IDs are found in the configuration data for the component.

Faster Serving · Powerful Options

17 May 2023: Build 180.2 introduces many optimizations and improvements for Manifold Server when used as a TCP server to share data to Manifold clients or as an HTTP Server for Internet map serving to any browser. Rendering enhancements increase performance for desktop use as well as map serving performance.  A new setting for resampling allows zooming in to see individual pixel boundaries in rasters, a useful feature for pixel based editing.

Serve maps without a web server!

New caching capabilities for web server sources often used as backgrounds in maps served to the web by Server can result in dramatically faster performance, especially when many users are browsing maps on a Server-enabled web site. A dramatic increase in the number of connections allowed, even in the limited map server built into inexpensive Manifold Universal licenses, allows sophisticated use of many connections from web browsers for an enhanced user interface.  Command buttons in the default web interface have been reworked to be more compact and easier to use.

Rendering

  • Pixelated Worlds - The Style pane Options tab allows specifying the resample method for an image. Available choices are bilinear (the default) or nearest neighbor.  Choosing bilinear results in "square pixels" when zoomed far into the map, to show individual pixel positions.
  • Faster Rendering - Rendering a map with image layers that are completely offscreen performs faster.  This enhances performance in desktop use as well as in map serving when maps have large image layers, by eliminating any rendering overhead for layers that are not visible in the current view.

System Cache Memory

  • Less is More - The amount of memory to use for system cache can be decreased below 4 GB, down to 1 GB. The default is still 4 GB. Setting a small system cache provides better performance when running many different websites using smaller projects.
Click for a full resolution view.

Click the illustration at right for a full resolution view of the new default user interface for web maps served by Server.

Manifold Server

  • Persistent Cache for Web Data Sources - Web data sources tunneled by either TCP or HTTP servers now may use persistent cache if their parent is a database such as PostgreSQL, SQLite or similar.   Web data sources such as image servers might be created either directly within .map files or within database data sources like PostgreSQL. The Save cached data between sessions option when creating a web data source can be used to let web data sources save all downloaded data in their parent data source so that future requests for the same data do not have to re-request it. That parent data source can be a data source such as a PostgreSQL or other database.  
  • Read/Write Intermediate Databases for Caching - When projects are used by TCP servers or HTTP servers, web data sources created in the .map file will not be able to save cached tiles in the project because TCP servers and HTTP servers open the .map file in read-only mode.  However, if the web data source has been created within an intermediate data source that is a read/write database like PostgreSQL or some other database, the web data source will now be able to write to the cache in that database. This significantly improves the performance of web data sources, albeit at the cost of the storage space required for cached web data source tiles.
  • New Memory Option - The manifoldsrv.exe executable (used for TCP servers and HTTP servers) ignores the amount of memory to use for system cache specified as a user option in Tools - Options. Instead, it allows specifying the amount of memory to use for cache via a new -memory:xxx command-line parameter, specifying the amount of memory to use in gigabytes. The default is 4 GB. (Servers ignore the value specified in Tools - Options because server instances frequently run under specialized user accounts, and accessing user options for these accounts might be difficult or impossible.)
  • Scripts Can Reach the Startup Database - The startup database operated by a TCP server or HTTP server has been made available for scripts.  Scripts can access the startup database using Application.GetDatabaseRoot().
  • Manifold Queries Run on the Server - The query engine always runs queries from data sources for TCP servers on the server.
  • PNG Buttons and Tooltips - Buttons in the web map user interface use PNG icons and also show tooltips.
  • Command Toolbar - Buttons in the web map user interface have been grouped into a toolbar placed at the center of the top edge of the map. The toolbar can be collapsed and expanded.
  • More Connections - The default number of connections for HTTP servers has been increased from 20 to 100, to account for web browsers creating multiple connections to the server for the same client. The maximum number of connections for an HTTP server for a Universal edition of Manifold has also increased from 20 to 100.
  • Checking all the Boxes - Pages served by HTTP servers now declare compliance with HTML 5. They also now have a viewport meta tag and a UTF-8 charset meta tag.
  • Dynamic Render Cache - The HTTP server caches rendered map images for performance.
  • The Bottom Line - Web maps served now put the manifold.net watermark into the middle bottom.  This keeps corner positions free in the display for use by legend, North arrow or scale bar.
  • Scripts Controls when Sharing Data - TCP servers used for sharing projects and data allow controlling server scripts via a new -scripts:xxx command-line parameter. Available choices:
    • -scripts:on - Allows running scripts (currently applies to calling script functions in queries, computed fields and constraints. In the future will also apply to running script components).
    • -scripts:off - Disallows running scripts (the default).

New Videos

First Look - Serve Maps to the Web in 3 Minutes - New! Serve maps to the web in less than 3 minutes with no Internet server or map server required, and no programming. Manifold Universal and Manifold Server licenses now include full map serving built in with no other programs required. Everything is built into Manifold. Create the map display you want in your Manifold desktop like usual, save it, and then in less than one minute publish it to the web. This video shows how.

The video first shows how to publish a map to the web with a few clicks, browses it in a Bing browser, and then shows how easy it is to change the map being served: simply edit the map in Manifold as you like, save the map project and then with a click launch the web service again and the web page is updated. The video also shows how easy it is to add layers from other sources like other web sources or databases.

The video also shows how to serve maps from the inexpensive Universal license, from a command line. A $195 package is used to serve over 85 GB of map data in a really fast and responsive web page, with no programming, no need to learn how to install, administer, and maintain IIS or Apache, no need for third party map serving applications or technologies like MapServer or Leaflet, no need to learn web development, and no need to rebuild tile sets or go through other hassles when changing the maps being served. Super!

Stack Many Big Images in a Web Map: Working with Manifold Release 9 we create multiple versions of a 60 GB image without increasing the size of project. The different images all show data from the same table, but with different styling for hill shading using different Z scales.

Hill shading that looks good at a particular scale will look too dark or too intense when zoomed farther in and will look insufficiently shaded when zoomed far out. Manifold allows creation of many images from the same data with each such image styled for what looks good at a particular zoom level. You can then stack the different images in the same map, using the Layers pane zoom ranges settings to turn the images off and on as you zoom in and out. The video shows how easy all that is to do, with various facilities to make it easy to match the zoom levels at which different layers turn off and on. The video also shows how to set up a legend to show the thematic format for terrain despite there being many layers in use to show the same terrain.

The video closes with a quick demo of how to publish the created map as a web page using Manifold Server: a few clicks and you have a web page with no programming required, and no web server or map server required. Manifold does it all in one small download!

How to Create Azimuthal Projection Maps: An azimuthal projection shows the Earth as it might look from a spot hovering overhead a particular location, showing one hemisphere of the Earth. A classic problem using such coordinate systems to display vector data is that vector objects which are on the hidden side of the Earth will still be displayed if they are not clipped.

Using the example of a Vertical Perspective projection centered on Europe with a viewpoint 5000 kilometers above the Earth, this video shows a quick and easy way using Manifold Release 9 facilities to clip unwanted objects or parts of objects from the display. The video also shows how to use raster layers in such displays, including image servers like Google Satellite. Works in the free Manifold Viewer too!


Internet Map Serving

08 May 2023: Build 180.1 is a huge new cutting edge build that introduces Internet map serving capability to Manifold Server within Manifold Release 9 Universal edition and Manifold Release 9 Server edition.  This allows Manifold users to create a GIS-enabled web page without any need for either a web server like Internet Information Server or Apache, or a map server.  The web server and map server are now built in parts of Manifold.  If you have a static IP address reachable from Internet, you can create GIS-enabled web pages.  No programming required. Display your maps anywhere there is an Internet connection.

Internet Map Serving

Serve maps without a web server!

Internet map serving uses the same Manifold Server internal engine proven through massive multiuser project and data sharing using Manifold clients. Build 180.1 now adds HTTP (web) serving of GIS powered map displays to standard Internet browsers as well, with Manifold itself acting as its own map server and web server and automatically generating default web pages for browsing maps. The Manifold download is still very small, typically only 31 MB.

Build 180.1 is a first release of HTTP serving in Server with a focus on keeping it simple.  Future builds will add many additional features, such as many extensions to the map UI with new REST endpoints, support for WMS and other protocols, and other features.

    Serve maps without a web server!
  • Command Prompt or Services Dialog - The HTTP server can be launched and run as a service from the Tools - Manage Services command in Manifold Release 9 Server edition or from a command prompt in either Manifold Release 9 Server edition or Manifold Release 9 Universal edition.
  • HTTP or TCP Server Option - The Server executable, manifoldsrv.exe, launched from a command prompt allows specifying the server type using a -type:xxx command line option. Specifying -type:http runs the HTTP server and specifying -type:tcp runs the TCP server (the default).
  • Limited and Unlimited Choices - Manifold Release 9 Universal edition is limited to a single server instance regardless of its type.  For example, it can run a single TCP server or a single HTTP server, but not both simultaneously.  Manifold Release 9 Server edition provides an unlimited number of Server instances per server machine, allowing a mix of TCP and HTTP servers running simultaneously.
  • Maximum Compatibility - The HTTP server implements HTTP/1.1 for maximum compatibility. Supported methods are GET and HEAD. All text is returned as UTF-8. All images are returned as PNG.
  • Simultaneous Multiple Requests - The HTTP server accepts multiple HTTP requests queued to the same connection without waiting until any prior requests are processed.
  • Port Flexibility - The HTTP server defaults to port 80.  Using the default port allows any browser to connect by just using the IP address as the URL.  You can use other ports by specifying the -port:xxx command line option, for example, -port:8080 to use port 8080.  The TCP server continues to default to port 9099.
  • Use with Existing Web Sites - The web page served by the HTTP server has been organized so the map UI (user interface) is inside a Javascript control and the page itself merely creates and initializes that control. This allows putting the map served by the HTTP server into an existing web site with minimal changes.  For details see the comments for web developers below.
  • Click and Drag to Pan - The map UI used by the HTTP server allows panning the map using the mouse cursor with a click and drag motion. Pressing Escape while panning cancels the operation.
  • Scroll to Zoom - The map UI used by the HTTP server allows zooming the map using the mouse wheel. Multiple rapid zooms, that is, multiple clicks, using the wheel are combined together with the map being updated after the wheel has not been scrolled for 1 second.
  • Zoom Buttons - The map UI used by the HTTP server shows buttons in the left top corner of the map for zoom in, zoom out, and zoom to fit. The extent used by zoom to fit ignores layers for web images such as Google or Bing unless all other layers in the map are empty.

Other

  • No COM Threading Restrictions - Launching Manifold in the context of an external application via ODBC, COM or .NET no longer places any restrictions onto the COM threading model of the calling thread. Previously, the calling thread was required to use COM STA, otherwise attempting to launch Manifold would fail.

For Web Developers

It's easy to put the map served by the HTTP server into an existing web site.  The HTML code to do so looks like this:


<script src="webscript.js"></script>
<script>

  window.onload = function () {
    let config = {
      bounds: { xmin: xxx, ymin: xxx, xmax: xxx, ymax: xxx, },
      cx: 800,
      cy: 800,
      urlbase: "/",
    };
    manifold.createMap(document.querySelector("#map"), config);
  };
 
</script>

...

<div id="map"></div>

The above can be put into an existing web site served by some other web server, like Microsoft Internet Information Server (IIS) or Apache. The URL for the script and the urlbase config parameter will have to be adjusted to point to an appropriate instance of the Manifold HTTP server.

When the web page loads, the script defines the manifold object and the call to manifold.createMap will create all necessary HTML elements for the map UI in the specified div, style them and wire them to events. The content of the div will then display the map served by the Manifold HTTP server and allow operating it.   Future extensions to the map UI will only affect the config section in the inserted code.

REST Endpoints

  • /map?... - The map image, which accepts the following parameters:
    • bounds=xmin,ymin,xmax,ymax - Bounding box to render. The default is a full view.
    • size=cx,cy - Dimensions of the image to render. Default dimensions are 800 by 800.  Neither cx nor cy may exceed 4096.

New Base Build · Conveniences

16 March 2023: Build 180 is a base build that is recommended for all users. It provides a number of conveniences requested by the user community and incorporates all improvements from the 9.0.179.x series of builds.

Conveniences

  • None Better - The Layers pane shows none overlap mode as none, not as an empty string. This helps distinguish label layers with none overlap mode from non-label layers.
  • Inherited Style - Re-projecting a component into a new component, for example, when re-projecting an image, copies style from the source component into the new component.
  • Pre-selection - Re-projecting a component into a new component selects the new component in the Project pane, ready for opening or other work.
  • Thematic Formatting Remembered - The Style pane saves in style data the method used to produce intervals for thematic formatting, thus remembering the method. This allows a wider range of Style editing while preserving thematic formatting.
  • Quick MXB Opens - Dragging and dropping a single .mxb file (a compressed project archive) into the Project pane opens the .mxb file as a new project, the same as dragging and dropping a single .map file into the project.
  • Center Map Windows - Map windows allow centering the view to specified coordinates, automatically panning the view, using the new Center command in the context menu for the Position status bar pane. The center coodinates can be specified as:
    • latitude / longitude - Pan to specified latitude and longitude coordinates. This is the default mode.
    • pixels / stored coordinates - Pan to pixel coordinates in a raster.
    • projected coordinates - Pan to specified coordinate numbers in the projected coordinate system used by the window.
  • Center the Active Layout Frame - Layout windows also allow centering the view for the active layout frame to specified coordinates, automatically panning the view, using the Center command for the Position status bar pane. If the layout is read-only, the command is not shown.

Conveniences · Updates

8 March 2023: Cutting edge Build 179.4 is a technical build that updates third party libraries, improves label performance, and introduces some user conveniences from the wishlist.

Conveniences

  • Automatic Table Names - Entering the name of a new, destination drawing or image in the Transform pane automatically will generate a corresponding name for the new table. The name of the new table will be adjusted as required by the database within which it is created. For example, if the destination database does not allow names that contain spaces, spaces will be replaced by underscore characters.
  • ERDAS Datums - Reading coordinate system data from an IMG ERDAS file preserves the datum name.
  • TIFF Worlds - Exporting data to TIFF produces TIFFW (world file) and PRJ files. Manifold always writes TIFF with GeoTIFF tags, so the world file and PRJ files are redundant when using GIS packages that understand GeoTIFF format. Adding them results in an export ensemble of files that preserve projection information when using packages that do not understand GeoTIFF format.
  • Overlaps on Tap - Label layers support a new overlap mode: none, for no overlap clipping. In this mode, the system always renders all labels, even if they overlap. This is a great way to check if desired labels have been clipped.
  • A Million Clicks - Rendering label layers with overlap mode set to none only stores click data for the first million labels. This avoids wasting large amounts of resources on data that is of very limited use.
  • Faster Label Rendering - Rendering label layers in high resolution with overlap mode set to layer or map, for example, during during printing, performs faster.

Updates

  • Microsoft - VCREDIST (Microsoft Visual C++ runtime) has been updated to 14.34.31938.0. This is a minor update with several fixes.
  • Google - LIBWEBP has been updated to 1.3.0. This is a minor update with several fixes, particularly for use from multiple threads.
  • Extensis - The MRSID SDK has been updated to 9.5.5.5244. This adds support for generation 4 SID files.
  • FOSS - SQLITE has been updated to 3.41.0. This adds several performance improvements for queries. The update also adds support for canceling long operations, a capability that might be used in future builds for canceling long operations when using SQLite.

New Scale Controls · Layout Enhancements

23 February 2023: Cutting edge Build 179.3 introduces new capabilities for controlling the display of contents within layout frames by setting scale using new capabilities for setting scale as absolute values, by pixel sizes, or by the size of the view within the frame. The new scale controls also work for map, drawing, image, and labels windows.

Options for setting scale

Illustration: The scale readout shows the size of the view in the Map window, 205 meters by 161.982 meters. Right click it to show the scale in meters per pixel like 0.529 m / px, or in absolute scale like 1:2000.

Scale and Position

  • New Scale Modes - The Scale status bar pane supports new modes:
    • absolute - Show scale as an absolute value, for example, 1:24000. This is the default mode.
    • pixel size - Show scale as pixel size in coordinate system units, for example, 5 m / px.
    • view size - Show scale as view size in coordinate system units, for example, 500 x 300 m.
  • Scale Dialog - The Scale dialog launched from the Scale status bar pane's context menu allows specifying the scale either as an absolute value, a pixel size or a view size.
  • Position Readout in Layout Frames - The Position status bar pane reports the coordinates under the cursor for any active layout frame that shows a component (map, drawing, image, labels).
  • Scale Control in Layout Frames - The Scale status bar pane reports the scale for any active layout frame that shows a component. Reporting the scale of a layout frame in pixel size mode reports the number of coordinate system units per millimeter. If the layout that contains the frame is writable, the scale can also be changed.

Save as Image Enhancements

13 February 2023: Cutting edge Build 179.2 is a quick update that incorporates community requests for the new Save as Image capability introduced in the prior build, 179.1.

See the 5 Minute Tutorial - DPI in Save as Image video and the 5 Minute Tutorial - Custom Views in Save as Image video for two essential Save as Image capabilities added in 179.2.

Custom image extents

Illustration: It's easy to pick custom image extents, including a drop down menu to choose the extents of any layer in the map.

Rendering Views as Images

  • Approximate Size of Result - The Save as Image dialog shows the approximate size of the produced image in bytes as a reference. This helps gauge whether the produced image will be the right size various uses, such as fitting into an email as an attachment, small enough to print, big enough for the desired level of detail, and so on.
  • Specify DPI - The Save as Image dialog allows specifying the render DPI (dots per inch). The default is 96, which is the default screen DPI on Windows. The render DPI is used to scale styles for vector shapes and text. Rendering web images such as Bing retrieves image data as if the DPI was at most 96, to render vector shapes and text in retrieved data at a size similar to other layers.
  • Autoscoped Extents - The Save as Image dialog in full view mode sets the render area to include all layers that are turned on, instead of all layers whether they are turned on or off. This avoids producing images with empty space near borders.
  • Custom Views with Custom Extents - The Save as Image dialog includes a new view named custom view. The extent of the custom view can be edited by pressing an Edit button which opens the Edit View dialog. The Edit View dialog allows entering the minimum and maximum X and Y coordinates of the view as projected coordinates, in units used by the coordinate system with local offsets removed. The Edit View dialog also allows setting the extent of the view to that of the current view or to the extent of the full view, or to the extent of a specific data-containing layer in a drop down list.

SQL Functions

  • DPI Parameter - TileRenderXxx query functions include a new parameter to specify the render DPI.
  • GeomCoordX/Y/Z - New GeomCoordXGeomCoordY, and GeomCoordZ functions: These take a geom and a coordinate index, and return the X, Y, or Z value of the specified coordinate.

New Videos

5 Minute Tutorial - DPI in Save as Image - The new Save as Image dialog in Manifold Release 9 provides a DPI setting that controls rendering of text and shapes to enable a good match to higher resolution images, using settings that are typically used for printing or graphics arts work. This fast video shows examples using Save as Image using default, computer monitor resolution of 96 DPI as compared to higher resolution at 600 DPI.

5 Minute Tutorial - Custom Views in Save as Image - The Save as Image dialog in Manifold Release 9 makes it easy to create images from custom views of maps with just a few clicks. Besides the usual "current view" what you see is what you get mode, you can choose an extended view beyond what the current window shows, a full view that shows the entire extent of all visible layers in the map, or a custom view to get the extents of a particular layer, or otherwise exactly the extents you want.

The video shows how to use custom views, including a really fast and easy way to create images that cover only those regions within a grid or within a rectangle drawn. All the images generated are fully georegistered so you can use them in any coordinate system aware software and they'll line up perfectly. Super!


Map window to be rendered as an image

Render Views Into Images

6 February 2023: Cutting edge Build 179.1 introduces technology for high performance creation of raster images that capture visual displays in map windows, including drawing, image, and labels windows. The new technology can be used from a user friendly Edit - Save as Image command, or from SQL functions for high performance automation.

Capabilities delivered in this build are just the visible tip of extensive new technology inside the system that provides a foundation for fast generation of rendered views for use in upcoming new features, such as web serving.

See the First Look - Save Map Views as Images video for a quick introduction to new legend capabilities.

Easy Dialog Rendering

  • Save as Image Dialog - Map windows, including drawing, image, and label windows, support a new Edit - Save as Image command which renders the contents of the window into an image of specified size. The image is created in the data source of the map. Available modes:
    • centered view at current scale - Renders data from the center of the current view at the current scale out to the given extents.
    • current view - Renders data within the rectangular area shown in the window into an image of the specified number of pixels horizontally and vertically.  Increasing the number of pixels increases the resolution and thus detail.
    • full view - Renders data in the rectangular area that covers all layers except base maps (the same area that Zoom to Fit would show) with the desired level of detail.

    Illustrations at right: Starting with a map window, choose Edit - Save as Image and with one click in an easy, user friendly dialog create an image that captures the view in the map window, including all map layers and virtual layers such as North arrows.

    Just click Render
  • Specify Image Sizes - The centered view at current scale mode allows editing both the X and Y size of the produced image. The current view and full view modes only allow editing the X size, with Y size automatically being set to be proportional to the dimensions of the render area. The maximum size of the produced image by either X or Y is 25 million pixels (this is not a technical limitation, but a sanity check).
  • Match Image Size to Window - A Current Window button in centered view at current scale and current view modes allows setting the size of the produced image to that of the current window.
  • Match Image Size to Scale - A Current Scale button in full view mode allows setting the size of the produced image to cover all layers at the current scale.
  • High Performance with Dynamic Labels - Big images are rendered in parts. Rendering an image with multiple parts adjusts label placement logic to avoid part boundaries, to protect from rendering artifacts. Labels placed on a part boundary try moving to alternative locations.
  • Track Progress - Rendering an image tracks progress and reports the name of the currently rendered layer. This allows seeing which layers take a long time to render. Usually, the layers that are slowest to render are web images such as Bing, since those images have to be loaded through the web. Rendering can be canceled at any moment.
  • Handle Virtual Layers - The Save as Image dialog includes a Render virtual layers option to render virtual layers, that is, the Background, Grid, Legend, North Arrow and Scale Bar virtual layers in the Layers pane for a map window. If the option is turned on, the system renders any virtual layers that are currently shown in the window. If the option is turned off, the system ignores the on/off settings for virtual layers, with the background of the produced image imade transparent. That's great for producing images with transparent pixels in between labels and vector objects.
  • SQL Written for You - The Save as Image dialog includes an Edit Query button that automatically writes SQL for the rendering query that implements the dialog's settings. That allows customizing or saving the query, for incorporation into automation workflows.
  • Fully Georeferenced - Images created are automatically georeferenced. Export them as GeoTIFFs for use in GIS and CAD packages or as any desired image format like PNG or JPG for use on the web or in graphics arts packages. Images incorporated full transparency when desired so it's easy to create images showing only vector objects, labels, or other compositions to use in "hybrid" displays.

Illustrations: The rendered image. It's fully georeferenced. Cool!

Resulting image

SQL Functions

  • TileRender - Takes a component, the rectangle to render, the render size in pixels, the tile size in pixels, and a boolean value that controls whether to render virtual layers, and then renders data in the specified rectangle and returns the result as a table of BGRA tiles. The component must be a map or a component that can participate in a map as a layer. The rectangle is specified in the coordinate system of the component. If the proportions of the rectangle do not match the render size, the rectangle is increased to avoid vertical or horizontal distortion. For example, attempting to render a 7000 x 8000 rectangle into a 200 x 200 image will increase the rectangle to 8000 x 8000 to match the proportions of the result. The coordinate system of the result is shifted to the left bottom corner of the render rectangle. If virtual layers are rendered, their parameters are taken from the component's properties. If virtual layers are not rendered, the background will be transparent and grid, legend, north arrow and scale bar virtual layers will be turned off.
  • TileRenderWindow - Same as TileRender, but instead taking the name of a component, takes the name of a window and renders data from that window. If the window shows a virtual map, the parameters for virtual layers are taken from the window.
  • TileRenderSingle - Takes a component, the rectangle to render, the render size in pixels, and a boolean value that controls whether to render virtual layers, and then renders data in the specified rectangle and returns the result as a BGRA tile of the specified size. The component must be a map or a component that can participate in a map as a layer. The rectangle is specified in the coordinate system of the component. If the proportions of the rectangle do not match the render size, the rectangle is increased to avoid vertical or horizontal distortion. If virtual layers are rendered, their parameters are taken from the component's properties. If virtual layers are not rendered, the background will be transparent, and grid, legend, north arrow and scale bar virtual layers will be turned off.
  • TileRenderSingleWindow - Same as TileRenderSingle, but instead of taking the name of a component, takes the name of a window and renders data from that window. If the window shows a virtual map, the parameters for virtual layers are taken from the window.
  • Optimized for Big Images and for Web Servers - The TileRender and TileRenderWindow functions are optimized for rendering big images, such rendering a map into a static image using the Save as Image command. TileRenderSingle and TileRenderSingleWindow are optimized for rendering small images, such as rendering a single tile for a web request.

New Video

First Look - Save Map Views as Images - With just a single click, use the new Save as Image command in Manifold Release 9 to save map views as images, for use in other programs or publication on the web. This fast paced video shows how using default dialog settings, and it covers how with a few more clicks you can create a wide range of desired images and export them with just one more click. Fast!

The video covers options for the view created, to rapidly create a "what you see is what you get" image of the map display, to create a larger image at the same scale, and more. See how to create more detailed images using more pixels, and how to control whether that extra resolution is used to drill deeper into scale or to show the same scale with higher resolution for greater DPI settings.

The video also shows how to create layers for "hybrid" displays, where vector objects or labels are rasterized with the space between them kept transparent. That makes it easy to layer such images within graphics editors or in other GIS packages. Created images are perfectly georeferenced, so you can drag and drop them into GIS settings.

The video closes with a fast example how to pick extents manually for images if desire. Wow! Lots of info in a fast, easily understood video. Also works in the free Manifold Viewer.


Legends · Layouts · Updates

Legends in maps

10 January 2023: Base Build 179 incorporates all improvements in the 9.0.178.x series of builds. It is recommended for all users. The main changes since the prior cutting edge build, 9.0.178.6, is the provision of quick choices for which map layers are incorporated into the legend, as well as quick and easy customization of formatting for different legend entries. See the First Look - Legends in Maps and Layouts video for a quick introduction to new legend capabilities.

Illustration: Add a legend to a map window with a single click, and then easily customize it.

Legends

  • Position Legends - The Legend dialog allows specifying the vertical position of the legend within a legend layout frame. The default is center.
  • Automatic Trim - Layout frames with text that is too long to fit into a frame trim the legend text to the first words that fit.
  • Choose Which Layers Appear - The Layers pane filter button allows showing and editing Legend Mode for map layers, which choose which layers appear and how they appear:
    • full - Always legend the layer.
    • short - Always legend the layer, reducing thematic formatting to a single sample using the main title, such as the name of the layer.
    • auto full - Legend the layer if it is currently visible, that is, not turned off explicitly, not in a folder that is turned off explicitly, and not hidden due to the current scale. This is the default.
    • auto short - Legend the layer if it is currently visible, reducing thematic formatting to a single sample using the main title, such as the name of the layer.
    • none - Never legend the layer.
  • Formatting Legend Items - The Legend dialog allows specifying separate font and text size for different types of legend items:
    • text - Header items for thematic formatting.
    • single - Sample items for non-thematic formatting, which appear in a single legend entries.
    • multiple - Sample items for thematic formatting, which typically appear in multiple legend entries.
  • Alignment - The Legend dialog allows specifying the text alignment for each type of legend item. Defaults are: text items use right alignment, single items use right alignment, and multiple items use left alignment.

Layouts

  • Automatic Conversion - Opening a .map project created by Manifold 8 converts legend, north arrow, and scale bar layout frames to Release 9 frames.
  • Inherit Backgrounds - Dropping a component into a layout copies the background color of the component into the created layout frame. Creating a virtual layout for a component using File - Print Preview does the same.
  • Inherit Grid Settings - Dropping a component into a layout or creating a virtual layout for a component using File - Print Preview copies grid parameters into the created layout frame.

Library Updates

  • Visual C++ - VCREDIST (Visual C++ runtime) has been updated to 14.34.31931.0.
  • LASzip - LASZIP has been updated to 3.5.0. This fixes a small memory leak when reading v3 LAZ files.
  • SQLite - SQLITE has been updated to 3.40.1. This fixes several obscure bugs and adds some performance optimizations.

New Video

First Look - Legends in Maps and Layouts See how easy it is to add legends to a map window in Manifold Release 9 with only a single click: the new legend capabilities provide fast, easy legends in map windows. We can also add legends to print layouts in a single click as well. The new system provides both fast and simple legends as well as the capability to fully customize print layout legends for those who wish to use a vast toolbox of different formatting capabilities. The video also shows how legend formatting is saved in a map's properties, so we can alter or create legends for map windows either programmatically or using SQL. Super! The entire video is filmed on a Windows 11 system.


Style · Label Overlaps · Legends

29 December 2022: Cutting Edge Build 178.6 is a large build with many new features and improvements for legends, including a dynamic Legends virtual layer for map windows. The build also includes significant improvements in automatic label placement and overlap resolution and improvements in Style. Build 178.6 will be the basis for the next base build early in 2023.

Style and Cartography

  • New Apply Button - Editing area, line, point, or text style shown in the Style pane using the Style dialog allows applying changes to the context display window via a new Apply button without having to exit the dialog.
  • Unique Tallies - Using Tally to re-tally unique value intervals in the Style pane retains existing formatting for existing values.
  • Numeric Tallies - Using Tally to re-tally numeric value intervals in the Style pane copies existing formatting from the closest prior values.
  • North Arrow and Scale Bar - The North arrow and scale bar in a map window may overlap each other and are only auto-hidden when the map window is too small to fit them.
  • Crisp Choices Highlighted - In Style pane controls, dropdown lists for sizes highlight choices that map to whole pixels at 96 DPI. 96 DPI is the default screen resolution. Using sizes that map to whole pixels at that DPI, for example, setting point size to 4.5 points and stroke size to 0.75 points, helps make vector shapes look crisper.
  • More Choices - Dropdown lists of sizes have been adjusted to include more choices that map to whole pixels at 96 DPI.

Label Overlaps

  • Line labels - Placing labels near lines in one per branch or one per record modes tries multiple label positions in case of overlaps. Positions near centers of visible branches are given preference.
  • Point labels - The Style dialog for labels includes new options for placing labels near points:
    • label - Specifies how many labels to place for points with multiple coordinates (multi-points). The default is one label per coordinate,
    • move to avoid overlap - When turned on, will try multiple label positions to avoid overlaps.

Legends

  • Legends for Map Windows - The Layers pane for a map window provides a virtual layer for a Legend, like virtual layers for a North arrow and a scale bar. Double-clicking the Legend layer edits its parameters using the Legend dialog.
  • Automatic Legends - Turning on the Legend virtual layer for a map automatically creates a legend using the default style for all the layers in that map.
  • Previews - The Legend dialog provides a preview pane, which automatically updates based on changes within the dialog.
  • Apply Button - The Legend dialog provides an Apply button to apply changes to the map window display without closing the dialog.
  • Automatic Adaptation - Legends automatically ignore images with no thematic formatting and drawings and labels with no records. Legends ignore formatting for geometry types that do not exist in the drawing.
  • As Many as Fit - Legends with too many items render however many items that fit into the legend frame.
  • Layout Legends - Layouts support legend frames. To add a legend frame, use the new Create Legend cursor mode.
  • Autoscope - Legend frames added to layouts take their data from the next component frame below the legend in the display stack, or, if there are no such frames, from the topmost component frame. This is the same as how North arrow and scale bar layout frames derive their context.
  • Info Pane and Legends - The Info pane for a legend layout frame shows the legend style and allows editing it.
  • Split into Samples - The context menu for a legend layout frame in the Layers pane includes a new Split into Samples command which splits the legend into individual frames for formatting samples and adds them to the layout. The new frames are put into a separate Layers pane folder on the same level as the legend frame, right above it in the display order. The original legend frame is hidden, but not deleted.
  • Legend Parameters - Legend parameters for legends in map windows and layouts:
    • foreground/background colors - Defaults are black/white
    • style - Pick a legend style
    • stroke - Stroke width for the border
    • text font - Default font for text captions
    • text size - Default size for text captions
    • position - Horizontal and vertical floating position in the map window
    • margin - Horizontal and vertical margin within the map window
    • size - Horizontal legend size. Vertical size is set automatically based on the number of items.
    • padding - Padding between legend items and the legend border.

Label Overlaps between Layers · Parallel Rendering in Layouts

4 December 2022: Cutting Edge Build 178.5 provides label overlap management between layers in maps, as well as some technical improvements to multi-threaded rendering of layouts.

Label Overlaps

without overlaps between layers
  • Overlap Mode - The filter button in the Layers pane includes a new Overlap Mode command which shows the overlap mode for label layers and allows changing the overlap mode.
  • Layer overlap mode - Labels in the layer may not overlap each other, but may overlap labels from other layers. This is the default mode.
  • Map overlap mode - Labels in the layer may not overlap each other and may not overlap labels from other layers whose overlap mode is also set to map.
  • Works Everywhere - Overlap modes work in map windows, in layout windows, and during printing.
  • Automatic Re-rendering - Editing a label layer set to map overlap or turning that layer on or off will re-render other label layers set to map overlap above it.

Illustration above: A map with multiple labels layers. Overlap resolution between layers is off. That allows labels in different layers to overlap each other.

Layouts

with overlaps between layers
  • Faster Performance - Layout windows limit the number of rendering threads for a map frame. This significantly improves performance when rendering maps that contains many layers: instead of trying to render all layers at the same time, the window now starts rendering a few layers and only starts rendering new layers after previous layers finish rendering.
  • Faster with Many Maps and Many Frames - Layout windows limit the number of rendering threads across multiple frames. This helps render layouts with multiple maps.
  • Dynamic Increase/Decrease of Rendering Threads - Layout windows dynamically increase the number of rendering threads if the window becomes active and decrease the number of threads if the window becomes inactive. Map windows also dynamically increase/decrease rendering threads the same way.
  • Tuned for Many CPUs - The dynamic adjustment of rendering threads has been tuned to work more smoothly for systems with many CPUs.

Illustration above: The same map with overlap resolution between layers turned on. That automatically removes labels in lower priority layers that overlap with labels in higher priority layers.

New Video

5 Minute Tutorial - Label Overlap Modes: Label overlap modes make it easy to control how labels can overlap or not overlap even between different layers in maps. This short, fast video shows how, using Manifold Release 9 in Windows 11. Works in the free Manifold Viewer, too!


Conveniences · User Interface Improvements · Updates

21 November 2022: Cutting Edge Build 178.4 provides a variety of conveniences and user interface improvements for grids, North arrows, scale bars, Style, and layouts. It also provides new query functions to work with interactive selections from SQL, a command line option to help manage serial numbers, and important updates to third party software used by Manifold, notably a migration to the latest Visual C++ environment from Microsoft.

Style

  • Shared, Persistent Preview Backgrounds - Preview controls for styles for areas, lines, points, and text use a single shared preview background color, which persists per Manifold session. The preview color can be changed using the color picker box in the right top corner of the preview panel. This makes it easier to set a desired background color just once without having to set it for each use of style. Previously each control started with the background color of the map which could then be changed interactively, with the changes only persisting until the dialog was closed.
  • New Background - The default preview background color has been set to light blue. The new default makes it easier to see Style effects using white color.

Grids, North Arrows, Scale Bars

  • Shared, Persistent Preview Backgrounds - Preview controls for Style dialogs for grids, north arrows, and scale bars use the new, shared preview background color. The preview color can be changed using the color picker box in the right top corner of the preview panel.
  • Scale Bar Lengths in Units - The Scale Bar dialog allows specifying the desired scale bar length in scale bar units. If the space allocated for the scale bar is too small to show the desired length, the length is computed automatically from the visual size of the scale bar, rounding down to the first two significant digits. The default is to always compute the length automatically.
  • Easy Apply - The Grid, North Arrow, and Scale Bar dialogs include a new Apply button which allows applying changes to the map without closing the dialog, which makes interactive tinkering fast and easy. Super!
  • Snap to Grid - Snapping to a grid in a map window now snaps to the virtual grid layer. Snapping does not require the virtual grid layer to be turned on. Snapping to a grid always uses the base grid step for the virtual grid layer.
  • New Filters - The Layers pane has new North Arrows, Scale Bars, and Samples filters for layout frames. That makes it easy to reduce complex layouts to see only those frames desired.

Command Line Option

  • Show Serial Number - The manifold.exe executable supports a new -showserial command line option. This option allows administrators to see what serial number has been used on a given machine. The new command line option works for all editions of Manifold, and SQL for ArcGIS Pro.

Third Party Updates

  • Microsoft Visual C++ - The Microsoft Visual C++ environment used has been updated to 14.34.31933. The VC runtime has been updated to 14.32.31332.0. This adds many minor performance improvements and makes Manifold modules use the same version of the runtime as the latest modules from Microsoft and other major vendors, saving resources that would otherwise be spent on keeping multiple versions of the runtime in memory.
  • NVIDIA - NVIDIA CUDA has been updated to 11.8. GPGPU modules for sm_50 and sm_60 architectures now use slightly fewer GPGPU resources.
  • ECW / JPEG2K - The ECW SDK has been updated to 5.5.0.2268. This fixes a couple of minor SDK bugs related to the reading of ECW and JPEG2K images.
  • Google - Google LIBWEBP has been updated to 1.2.4. This improves the visual quality of compressed WEBP images and fixes several Google bugs related to transparency, etc.
  • SQLite - SQLITE has been updated to 3.39.4. This adds support for RIGHT and FULL outer joins (SQLITE did not have them until 3.39) as well as several minor performance improvements. This also fixes a number of SQLite bugs, most notably with join optimizations and with the UPSERT statement.

Query Functions

  • SelectionReplace - New query function: SelectionReplace. Takes a table to select records in, a table with keys to select and a flag whether records with the passed keys should be selected or unselected. The keys table should contain fields from the result table of the SelectionKeys function, with compatible types. The keys table may contain other fields as well, which will be ignored if present. The returned value for SelectionReplace is the number of unique keys fetched from the keys table.
  • SelectionReplaceWindow - New query function: SelectionReplaceWindow. Same as SelectionReplace, but also takes a window name and a layer name, which allows this function to replace the selection for a dynamic layer based on a query.
  • Work with Unopened Tables - In addition to manipulating selections in tables that have been opened, the SelectionReplace and SelectionReplaceWindow query functions will automatically create a selection even within a table that has never been opened as long as it is static (that is, not the result table of a query) and it belongs to a database opened in the Manifold user interface or one of its child databases (that is, not to an arbitrary database opened by a script).

New in Release 8

  • Microsoft Visual C++ - The Microsoft Visual C++ environment used has been updated to 14.34.31933. The VC runtime has been updated to 14.32.31332.0. This adds many minor performance improvements and makes Manifold modules use the same version of the runtime as the latest modules from Microsoft and other major vendors, saving resources that would otherwise be spent on keeping multiple versions of the runtime in memory.
  • Show Serial Number - The manifold.exe executable supports a new -showserial command line option. This option allows administrators to see what serial number has been used on a given machine. The new command line option launches a Manifold session and shows the serial number in the History pane.

Layouts with North Arrows, Scale Bars, Grids

11 October 2022: Cutting Edge Build 178.3 extends North arrow and scale bar capability to layouts. North arrow and scale bar frames can now be added to layouts, with automatic context for those frames taken from component frames in the layout. Grids have also been extended with more options. North arrows, scale bars, and grids have ben integrated into the Info pane.

layout_narrow_scale.png

Layouts

  • North Arrows - Layouts can now include North arrow frames. To add a North arrow frame, use the new Create North Arrow cursor mode command.
  • Scale Bars - Layouts can now include scale bar frames. To add a scale bar frame, use the new Create Scale Bar cursor mode command.
  • Automatic Context - North arrow frames and scale bar layout frames use data from the topmost component frame below the frame in the display stack, or, if there are no such frames, from the topmost component frame in the layout.
  • Automatic Bearing - A North arrow layout frame with auto bearing turned on checks if the center of the north arrow shape is inside the component frame used by the North arrow. If the center of the North arrow shape is inside the component frame, the bearing is computed for the geographic location at that center. Otherwise, the bearing is computed for the geographic center of the component frame.
  • Grids in Layouts - The Info pane for a component frame in a layout allows turning a grid on and off. The pane shows the grid style and allows editing it.

Illustration above: A layout with a map that uses Hotine projection to provide a rotated view. The map appears with a North arrow that uses the default Auto setting to point to North automatically. A simple style is used for the North arrow, with an "N" caption at the base of the arrow. A scale bar shows sizes in miles, and a light grid provides a latitude / longitude grid. Note how the North arrow is accurately aligned to the meridian line near it, automatically using the correct bearing for the location of the North arrow in the layout.

Grids

  • X and Y Grid Steps - The Grid dialog allows specifying grid step by X and Y. The default is a single step in X and Y using whatever is the coordinate system unit for the map. Grid cells never become smaller than the specified step.
  • Automatic Step Rendering - The Grid dialog allows specifying whether the grid step is increased during rendering. The default is on, to allow increasing the grid step. If the option is turned off, the grid step is locked to the specified step and grid cells never become larger than the specified step. If the visible size of grid cells becomes too small the grid is not rendered.
  • Latitude and Longitude Ranges - Rendering a grid for a latitude / longitude system restricts parallels to the -90 to 90 range. If the Use latitude / longitude option is turned on, rendering a grid also restricts meridians to the -180 to 180 range, otherwise meridians are not restricted.
  • Units of Measure - The Grid dialog allows specifying the unit of measure for the grid step. The default is to use whatever is the unit of measure for the coordinate system in use.

Other

  • Icons - The Layers pane shows icons for grid, north arrow, and scale bar layers in a map.
  • Direct Edits - The Info pane for a North arrow layout frame or a scale bar layout frame shows the North arrow or scale bar style and allows editing it.

North Arrows · Scale Bars · Grids

09 September 2022: Cutting Edge Build 178.2 introduces virtual layers that provide North arrows, scale bars, and grids in maps. Add a North arrow, scale bar, or lat/lon grid to a map with a single click. Choose North arrows from a collection of familiar symbols. Super!

north_arrow.png

Virtual Layers

  • Automatically available layers - The Layers pane for a map window shows virtual layers for a north arrow, scale bar and grid. Virtual layers can be turned on and off. Double-clicking a virtual layer edits its parameters using a dialog.
  • Choices are Remembered - Maps automatically remember all parameters and status of virtual layers, whether they are clicked on or off and choices made. That's saved in a project even between sessions.
  • Previews - Dialogs to configure North arrows, scale bars, and grids include a preview pane to instantly show how different choices look.

Illustration above: A portion of a map using Hotine projection to provide a rotated view. The map appears with a North arrow that uses the default Auto setting to point to North automatically. A simple style is used for the North arrow, with an "N" caption at the South position of the four NESW text caption options with the other options left blank. That puts the "N" caption at the base of the arrow, which is still instantly understood as the arrow pointing North. Varying a few simple options provides a wide range of effects.

North Arrows

Configure a North arrow by double-clicking the North Arrow virtual layer. The North Arrow dialog allows setting the following parameters:

  • Foreground color - Foreground and stroke color for shapes and text.
  • Background color - Fill color and the color for halos. Some north arrow shapes may use colors that are mixes of foreground and background colors.
  • Shapes gallery - Choose a North arrow shape from a gallery of popular shapes. Hovering the mouse over a shape will show the name of that shape in a tooltip.
  • Stroke - Stroke width for the shape.
  • Text - Check to show text (captions) near north arrow shapes for NESW directions.
  • NESW - Four boxes for text, such as "N" or "North" to use for each of the four directions. Some shapes can show captions in all four directions, some only two or one direction.
  • Text font - Font for text. Fully configurable for typeface, effects, bold, etc.
  • Text size - Font size for text.
  • Position - Horizontal and vertical position of the North arrow shape relative to the map.
  • Margins - Horizontal and vertical margins between the North arrow shape and the map's edges.
  • Size - Size of North arrow shape.
  • Halo - Width of background color halo for shape and text. Setting Halo to 0 turns off the halo.
  • Bearing - The direction of the North arrow, if the Auto box is not checked. Default is 0 for North up.
  • Auto - When checked (the default), compute the North arrow's bearing automatically. Bearings are first computed using the center of the north arrow shape, and then, if that fails because the north arrow is outside of the coordinate system domain, based on the center of the map.
virtual_layers.png

Scale Bars

Configure a scale bar by double-clicking the Scale Bar virtual layer.  The Scale Bar dialog allows setting the following parameters:

  • Foreground color - Foreground and stroke color for shapes and text.
  • Background color - Fill color.
  • Shapes gallery - Choose a scale bar shape from a gallery of popular shapes. Hovering the mouse over a shape will show the name of that shape in a tooltip.
  • Stroke - Stroke width for the shape.
  • Text - Check to show text (a caption) with the number of units.
  • Text font - Font for text. Fully configurable for typeface, effects, bold, etc.
  • Text size - Font size for text.
  • Position - Horizontal and vertical position of the scale bar shape relative to the map.
  • Margins - Horizontal and vertical margins between the scale bar shape and the map's edges.
  • Size - Approximate desired size of the scale bar shape in horizontal and vertical dimensions. The actual size is computed based on the units and current scale.
  • Halo - Width of background color halo for shape and text. Setting Halo to 0 turns off the halo.
  • Unit - Unit of measure shown in the text caption.
  • Use latitude / longitude - Check to create a latitude / longitude grid.
  • Automatic computation of scale bar length - The length of the scale bar is computed automatically based on the specified size, unit and the current scale. The width of the scale bar is slightly reduced so that the reported length is rounded to no more than two significant digits.

Illustration above: A map using Lambert Conformal Conic projection appears with a North arrow, a scale bar, and a latitude / longitude grid. Simple styles are used for the North arrow and scale bar shapes, with kilometers being the units of measure for the scale bar. The grid uses a very thin stroke for a more subtle effect. The North arrow uses an "N" caption at the North position of the four NESW text caption options with the other options left blank. The North arrow uses the default Auto setting to point to North automatically no matter where the North arrow is positioned in the map.

Grids

Configure a grid by double-clicking the Grid virtual layer.  The Grid dialog allows setting the following parameters:

  • Foreground color - Foreground and stroke color for grid styles.
  • Background color - Fill color.
  • Styles Gallery - Choose a grid style from the gallery. Hovering the mouse over a style will show the name of that shape in a tooltip.
  • Dashes - Dash pattern for lines, using the same conventions as the Dashes parameter for line styles.
  • Stroke - Stroke width for line and point styles.
  • Point size - Size for point styles.
  • Halo - Width in points of halo for line and point styles. Setting Halo to 0 turns off the halo.
  • Spacing - Minimum size of a grid cell. The actual size is computed based on the scale of the map and the units used (either native map units or latitude / longitude).
  • Use latitude / longitude - Check to create a latitude / longitude grid.
  • Automatic computation of grid step - The grid step is selected automatically based on the specified spacing and the current scale. The grid step in the units used (either the projection of the map or latitude / longitude) is rounded up to the closest power of 10 multiplied by 1, 2 or 5, resulting in grid steps such as 100, 200, 500, 1000, and so on.

New Video

First Look - North Arrows: A fast, short video providing a first look at North arrows, a new capability in Release 9. See how easy it is to add a North arrow with a single click in the Layers pane. Double-click the North arrow layer in the Layers pane to configure North arrow options like the style, colors, text and more.

North arrows in Manifold automatically adjust bearing to point North when the projection / coordinate system changes, using a sophisticated algorithm to set the bearing for wherever the North arrow has been placed in the map. No need to manually set the bearing of the North arrow. Works in the free Manifold Viewer, too!


Conveniences · Copy / Paste Interoperability

17 August 2022: Cutting Edge Build 178.1 provides a variety of user interface conveniences, including the ability to Copy from tables and to Paste into third-party applications like Excel and Notepad.

Features

  • Launch Command Lines - There is a new style for text fields: c = command line. The table window and the Info pane show command line text values in blue highlight color and allow running them using the context menu. This allows putting Windows command lines into a field, which can then be executed by right-clicking a cell and choosing Run Command.
  • Retain Filters and Sort Order - Refreshing data in a table window either manually or automatically, for example, after deleting records or changing the table schema, keeps filters and orders for fields that did not change.
  • Easy to Find Fields - Table windows now sort fields by name in the View - Order submenu.
  • Deletion Marks on External Tables - Table windows showing records for a table from a data source other than MAP mark records that have been deleted in that window as deleted. Previously, deleting records from such a table only suggested refreshing data using the bar at the bottom of the window. Now the window also shows records that it tried to delete.
  • Selected Records Count Always in View - The status bar includes a new Counts pane (a section in the status bar) that shows the total number of records and the number of selected records in the active component. This shows the number of selected records at all times without needing to switch to the Info pane.
  • Refreshing the Count - The record counts shown in the Counts status bar pane can be refreshed by right-clicking the section and choosing Refresh in the context menu. That is useful when working with data sources that are stored outside the .map project where the record count might change independently of any work done in the Manifold session.
  • Layouts also Count - The Info pane and the Counts status bar pane show the total number of frames and the number of selected frames for a layout.
  • Copy / Paste Interoperability - Copying records from a table window now copies them to the Windows clipboard in both binary format suitable for pasting back into Manifold and in text format suitable for pasting into third-party applications like Excel or Notepad. Copy records by selecting the desired records and then choosing the Edit-Copy menu command. Copying records in text format copies only visible fields. It copies fields in the order they appear in the table window, and formats field values according to field styles. The visible order of records is not preserved. The amount of copied text data is limited to 32 million characters because many third-party applications can only handle limited amounts of text coming from the clipboard. If there are more records than fit into the limit, extra records past the limit do not appear in text data and only appear in binary data (for pasting into Manifold).
  • Copy Columns - The context menu on column heads (right-click on a column head) now includes a Copy command which copies field values in that column from selected records to the clipboard. Copying field values copies them in text format only. The copied values are formatted according to the field style. Empty values are omitted.

Scales and Rendering · Line Label Options

10 August 2022: Base Build 178 incorporates all improvements in the 9.0.177.x series of builds. It also adds a new system for specifying zoom ranges in maps and for rendering to a fixed scale. New capabilities for line labels have been added as well. This is the first Base build that drops support for 32-versions.

Scales dialog

Scales and Rendering

  • New Min / Max Scale Readout - A new, single cell Min / Max Scale mode readout in the Layers pane replaces the former Closest (Min) Scale and Farthest (Max) Scale modes for map layers.    The new Min / Max Scale mode readout shows both scale settings together, to make it easier to compare zoom scales between different layers.   
  • New Scales Dialog - Editing zoom scales is now done using a new Scales dialog:  double-click into a Min / Max Scale cell in the Layers pane to launch the dialog.   The dialog shows the current scale for reference and allows setting the closes, minimum scale, the farthest, maximum scale, and also a new Render scale value.  The dialog allows direct entry of any scale value and also provides a pull-down list that includes even scale values in factors of ten (1, 10, 100, 1000, 10000, etc.)  as well as uneven scales used as limits in other layers.  That makes it easy to match scales used in other layers.
  • Easy to Match Scales - Applying scale limits to a layer keeps the layer visible at a zoom scale exactly equal to the closest scale, but hides it at a zoom scale exactly equal to the farthest scale. This allows showing exactly one layer out of a sequence of layers with matching scale boundaries, for example, +10k, 10k-50k, 50k+.
  • Render Scale - The Layers pane using the Scales dialog allows specifying a Render scale value for map layers that show vector data (drawings and labels).   Render scale is applied during rendering in windows and during printing.   When a render scale value is specified for a layer, the vector objects and labels in that layer are rendered as if the scale were fixed at that value, so zooming in will make the labels and objects bigger, while zooming out will make them smaller.
  • Autohide for Render Scale - Rendering labels and objects with render scale will not render anything if the specified render scale is too small (10 times smaller than the current scale) or too big (100 times bigger than the current scale).
  • True Scale in Layouts - Layout windows render drawings and labels at true scale:  zooming in and out will change the visual size of drawing objects and labels. Label placement algorithms may still produce slightly different results on screen vs. on page, or for different zooms on screen, due to different tolerances.
  • Left Aligned Columns - Layers pane readouts for opacity,  min / max scale,, and field width have been aligned left.   
  • Wider Color Picker - The color picker sample box for the virtual background layer in the Layers pane has been made wider to be similar to color pickers in the Style pane.

Line Labels

  • Above or Below - Editing a text style for Labels allows specifying whether the system should prefer placing labels following a line with left / right offset above or below the line. The default is above.
  • Smooth Tolerance - Editing a text style for Labels allows specifying a smooth tolerance factor to be applied to a line for labels following lines. The default is 50% of the font height.
An animation showing render scale setting in action

Illustration: The new Render scale setting for a vector or label layer sets a fixed scale at which the layer is rendered, so zooming in causes vector features and labels to get larger while zooming out makes them smaller.

New Video

5 Minute Tutorial - Min Max Scales for Layers: A quick look at the new system for setting scale limits for layers in Manifold System Release 9. The new system is more convenient than before because now you can set both minimum and maximum scale in the same dialog. Scale boxes also feature a new drop-down menu that includes all other scales that have been set, to make it really easy to pick a scale used by a different layer to coordinate when layers turn off and on. Works in the free Manifold Viewer, too!


New Features for Labels · Commander Exports

01 August 2022: Cutting Edge Build 177.4 provides many controls for line labels and label overlap spacing. It also adds an export control to Manifold Commander. Super!

Labels

  • Control How Many Labels Appear - Editing a text style allows specifying how many labels to place onto a line:
    • one per branch - (default) The system will try to place a single label for each visible branch of each record. This applies to visible branches, that is, the visible parts of branches, not physical branches. For example, if a physical branch goes off screen and then returns back on screen, it will produce multiple visible parts and the system will try to put a label onto each such part.
    • one per record - The system will try to place a single label for each record.
    • repeat - the system will try to place as many labels as will fit into each visible branch of each record given the specified spacing between labels on the same branch. Spacing can be specified either in absolute units, for example, 40, meaning 40 points, or in relative units for example, 800%, the default, meaning 8 times the font size.
    Label following a line
  • Control How Labels are Aligned to Lines - Editing a text style allows specifying how to place labels onto a line:
    • curve - (default) Bend label text to follow the shape of the line.
    • straight - Place labels without any bends in the direction of the line in the region of the center of the text.
    • straight horizontal - Place labels without any bends. aligned horizontally.
    • straight perpendicular - Place labels without any bends aligned perpendicular to the direction of the line in the region of the center of the text.
  • Smoother Line Labels - Placing labels onto lines preprocesses the line metric to make it smoother.
  • Visually Centered - Placing labels onto lines in one per branch or one per record modes prefers positions near the visual center of the line.
  • Accurate Overlaps - Placing labels onto lines produces a tighter and more accurate overlap shape. This improves the accuracy of clicking into labels. This also allows showing more labels in that labels that are close to each other start conflicting later than they did with less accurate overlap shapes.
  • Overlap Spacing - Editing a text style allows specifying overlap spacing, which controls how close individual labels can be to each other. The default is 1 pt.
  • Bend Spacing - Editing a text style allows specifying bend spacing to apply to labels following lines. With bend spacing, placing text onto a line adds small amounts of space between individual letters at each bend to improve readability. The amount of added space depends on the bend angle: sharper turns get more space. Bend spacing defines the maximum amount of space to add to a single bend. The default is 50%, adding up to half of the font size at each bend.

Manifold Commander and More

  • Easy Exports - A new -export:xxx command for Commander makes it easy to export files from any project. The command exports the specified component in the input file to the output file. The specified component can be in a nested data source. When using this command the input file is always opened in read-only mode and the value of the -open:xxx option is ignored. For example:

    • manifoldcmd "c:\world.map" -export:"Main Map" -out:"c:\world_map.gdb"
  • Layout Design in Your Language - Sample positions and shapes for layout frames have been localized, making it easy to use your language for layout design.
  • Unique MIFs - Reading MIF format allows duplicate field names and automatically renames duplicates to make all field names unique, thus automatically dealing with problems that can happen from encoding issues in MIF format files.

Manifold Commander

More for Commander · Labels · Dataports

26 July 2022: Cutting Edge Build 177.3 adds new capabilities to Manifold Commander, improves labels along lines, provides a vertical text alignment style in layouts, adds new dataports, and provides fixes.

Manifold Commander

  • External Scripts and Data - The -runscriptfile:xxx command for Commander works in the context of a data file. The command will open the specified data file and then run the script from the specified script file. That allows arbitrary scripting with arbitrary data files (any of the hundreds of formats Manifold knows) using Manifold as a processing engine.
  • External Queries - There is a new -runqueryfile:xxx command for Commander. The command is similar to -queryrun:xxx , but the text of the SQL query is taken from the specified file. That allows writing new queries to do workflow using SQL without opening Manifold interactively, including parametrized queries.
  • Command Line Queries - There is a new -runquerytext:xxx command for Commander. The command is similar to -queryrun:xxx, but the text of the query is taken directly from the command line.

Labels and Messages

  • Offsets for Line Labels - Editing a text style allows specifying an offset number for labels following lines. The default is 0 for placing a label for each visible branch directly on top of the line. If the offset is not 0, the system will try to place a label for each visible branch on each side of the line until it succeeds on one side or the other. For example, if the system first succeeds in placing a label on the left side of a particular branch, it will not try to place a label on the right side of that branch.
  • Vertical Alignment in Layouts - Editing a text style allows specifying the vertical alignment of the text. Vertical alignment is used when rendering text in layout frames.
  • Simpler Messages - Many progress messages have been simplified from mmm (xxx) format to mmm: xxx format for readability and consistency.

Dataports

  • Reduced GeoJSON size - Printing geometry to GeoJSON no longer prints optional bounding box data. This reduces output size, particularly for points. In the future, if there emerges a need to include bounding box data, an explicit option will be added to do so.
  • JSONL - There is a new dataport for JSONL files. JSONL files are line-delimited JSON, a simple format designed to be friendly to streaming data. A JSONL file contains a single table. Reading a JSONL file parses it dynamically. Each line must be 2 GB or less of text, but the file itself can be any size.
  • Exports to JSONL - There is a new option to export tables to JSONL files. Binary fields are ignored. The export tracks progress and can be canceled.
  • GEOJSONL - There is a new dataport for GEOJSONL files. GEOJSONL files are line-delimited JSON, similar to JSONL, but with GeoJSON data. A GEOJSONL file contains a single drawing. Reading a GEOJSONL file parses it dynamically. Each line must be 2 GB or less of text, but the file itself can be any size.
  • Exports to GEOJSONL - There is a new option to export drawings to GEOJSONL files. Binary fields except for the geometry field used by the drawing are ignored. Exported geometry is automatically converted to Latitude Longitude WGS84, curves are linearized, and areas are normalized to OGC rules. The export tracks progress and can be canceled.

32-bit Versions Deprecated · 2 Billion Record Table Displays

19 July 2022: Cutting Edge Build 177.2 is a historic build in that it drops support for 32-bit versions of Manifold projects. All Manifold products are now 64-bit and require 64-bit Windows operating systems.

Build 177.2 also expands the display viewport size in table windows to 2 billion records (wow!). That is way more than anybody can read through, but together with Manifold speed plus reasonable safety measures now built in, increasing the number of records that can be interactively displayed in a table window greatly expands the reach of interactive procedures to very large tables. Watch the new 10 Minute Tutorial - Very Big Table Windows video to see the interactive speed of Manifold even with larger tables.

Build 177.2 supports ArcGIS® Pro 3.x for SQL for ArcGIS® Pro, and also adds features to various dataports and provides bug fixes.

32-bit Versions Deprecated

  • Exclusively 64-bit - Release 8, Release 9, Manifold Viewer, and SQL for ArcGIS Pro no longer include 32-bit modules. Users who require 32-bit versions should use build 9.0.177 for Release 9 and build 8.0.33 for Release 8, which are base builds that include 32-bit modules and which never expire.
  • Simplified Install Folder - Manifold 9 products no longer use Bin or Bin64 folders. DLL and EXE modules are placed directly within the install folder. The Shared folder has been renamed to Extras.
  • Smaller Downloads - Dropping 32-bit versions from installation packages reduces download size. The Release 9 download, with thousands of features, is now under 31 MB and the Viewer download is under 30 MB.
  • Open SQL - SQL for ArcGIS Pro no longer includes an Open SQL 32-bit button. The Open SQL 64-bit button has been renamed to Open SQL.

Manifold was one of the first companies to ship 64-bit products. For over 20 years Manifold has maintained both 64-bit and 32-bit versions of all Manifold products.

Over time most, if not all, Manifold users naturally moved to 64-bit versions of products. At the same time, maintining obsolete 32-bit code has become a limiting factor for adding some new features. Some features have not been available in 32-bit mode due to lack of support from third parties.  For example, CUDA is 64-bit only, and ArcGIS Pro is 64-bit only as well.  Outdated versions of clients for databases at times must be used because they are the last available versions to support 32-bit mode.

In 2022, continuing to provide 32-bit versions is no longer worth the decreasing value of that compatibility.  Manifold is therefore going exclusively 64-bit from build 177.2 onward.  That will make it more efficient to add new features, and will remove limits on how new features must be designed.  That will make many things simpler for new users.  The first example of such a new feature is providing 2 billion record displays in table windows, which would have been limited by 32-bit restrictions.

2 Billion Records Displayed in Table Windows

  • 2 Billion Records - The maximum number of records that can be displayed in a table window is now 2 billion. Tables can contain more records, but only up to 2 billion can be displayed for interactive browsing in a table window.
  • Tables in Projects - Tables stored in Manifold's own internal database within .map project files always display all records in the table, up to 2 billion records.
  • Tables in External Data Sources - Tables stored in external data sources (not within the .map project) can either show all records in a table (up to 2 billion) or show a first sample of records. Showing a first sample of records instead of all records is useful when working with external data sources like SQL Server, PostgreSQL, or Oracle: not fetching all records immediately protects against wasting server resources and network traffic needlessly.
  • User Selectable Display Size - The Tools - Options dialog includes an Initial number of records to show (non-.map) option to specify the size of a first sample of records fetched for non-.map data sources. The available values are: auto (the default), all records, or a specific number of records. The auto value is currently set to 5000 records. The previous default was as high as 50000 records because it applied to tables in .map files as well. 5000 records is much friendlier to database servers. If 5000 records is too low for data sources in use, change the option to a higher value or to all in the Options dialog.
  • Dynamic Fetched Record Display - The Info pane shows the number of fetched records in the table window. If there are more records available, the Info pane also shows a (+) notation, with a button to fetch all records. Once a table window has been told to fetch all records for the displayed table, it will keep fetching all records for all further operations that refresh the table.
  • Action Bar - Table windows detect changes to displayed data from a non-.map data source and when needed show an action bar below the record list to allow single click refresh of data. Table windows with fewer than 64,000 records refresh on all changes automatically, while larger tables will show the action bar. That allows convenient interactive editing of drawings while their table windows are open without the table window (which might display up to 2 billion records) refreshing itself on every small change in the drawing.

SQL for ArcGIS® Pro

  • ArcGIS® Pro 3.0 Supported - SQL for ArcGIS Pro now supports ArcGIS 3.x. The install packages include two versions of the add-in: a version for ArcGIS 2.x in the ArcGis2 folder and a version for 3.x in the ArcGis3 folder. The EXE and MSI install packages detect the installed version of ArcGIS and register the corresponding version of the add-in.
  • Easy Executable Find - SQL for ArcGIS Pro tries to locate the add-in executable using a dialog if it cannot be found automatically. The location of the executable is then saved in an environment variable for future reference.

Data Sources and Dataports

  • Data Source Connection Attempts - Failed attempts to connect to a data source are recorded, with subsequent attempts to connect to the same data source being throttled. Errors for failed attempts to connect to a data source are logged with repeat errors omitted.
  • ECW and JPEG2000 Enhancements - ECW and JPEG2000 dataports track progress and can be canceled. Reads are aligned to tile boundaries for better performance. Internal buffer sizes are automatically adjusted when exporting very big images for better performance.
  • XYZ Enhancements - Miscellaneous improvements to the XYZ dataport provide conveniences and significantly faster performance: Reading XYZ files with a non-space delimiter allows whitespace both before and after the delimiter, reading integer values that do not fit into INT32 converts all values to FLOAT64, reading skips NaN values (shouldn't be there, but some software packages produce files with NaN values), the dataport tracks progress and can be canceled, files larger than 4GB are supported, protection against tiny drifts in XY values handles grids more reliably, and reading and writing performs significantly faster, 4-5 times faster with even more speed with big files.

New Video

10 Minute Tutorial - Very Big Table Windows: New in Manifold Release 9: Manifold now displays up to 2 billion records for interactive viewing in table windows, automatically displaying all records for tables stored in Manifold projects and allowing user choice of the display viewport from 5000 records to all records in the table for tables stored in data sources outside the project, like Oracle, SQL Server, PostgreSQL or other databases.

The video shows the speed of working with nearly 1.295 million records in a local Manifold table, and shows how to set options for choosing a display size for tables in external databases. Works in the free Manifold Viewer, too! Fast and easy!


Manifold Commander

Manifold Commander · Interactive Selection

11 July 2022: Cutting Edge Build 177.1 introduces in Universal and Server editions a new version of Manifold: Manifold Commander is a console application version of Manifold that provides the full range of Manifold query and scripting capabilities from a command line.

Build 177.1 also extends interactive selection capabilities, makes it easy to switch licenses, and provides bug fixes as well as improvements in the MapInfo MIF dataport.

Cut through complex GIS and DBMS tasks with ease
  • Your own Automated Factory - Commander provide an automated production line for accomplishing nearly any GIS, DBMS or ETL task. String together any of hundreds of functions using whatever logic you want in scripts, or take advantage of the higher level functionality you get with SQL that automates routine infrastructure for you. Manifold features like the Transform pane will automatically write SQL that accomplishes what you've set up using point and click templates. It's like being able to tell a factory full of robots what you want them to do.
  • Built into Universal and Server Editions - Manifold Release 9 Universal and Server licenses include Manifold Commander. Installing either Release 9 Universal or Release 9 Server automatically installs Manifold Commander. When you buy Release 9 Universal for $195 you automatically get Manifold Commander as well. There is no need to make any additional purchases to get Commander.
  • Simultaneous Use with Interactive Sessions - Universal and Server licenses allow simultaneous use of Manifold in an unlimited number of interactive sessions, even while an unlimited number of Manifold Commander sessions can be launched in background. Run automated tasks on the same computer at the same time as you continue to work interactively with Manifold.
  • Automation with SQL and Scripts - Commander allows running queries within a Manifold project or scripts either within the Manifold project or in external files. Commander allows launching commands to automatically do work without having to manually launch Manifold and operate it interactively.
  • Replace Costly and Slow ETL Tools - Commander is Manifold, so just like Manifold it runs fully parallel, with incredible parallel CPU and massively parallel GPU speed. Queries and scripts provide access to the full power of Manifold, enabling use of hundreds of Manifold functions and the full power of SQL and scripts to interact with data in databases or in any of hundreds of formats and data sources, to transform that data, do analyses, and save the transformed data or results or output to desired formats. Replace costly, non-parallel tools like FME at a fraction of the price.
  • Schedule Tasks - Using Windows Task Scheduler you can launch tasks using Commander on a regular schedule, such as updating a CSV every night for serving to clients, updating databases, or converting files into different formats.
  • Generate New Files - Commander can automatically write output to new files, with the type determined by the file extension. Create new .map project files, or write to formats like Esri file geodatabases or SQLite.

See the Manifold Commander user manual topic for details and illustrated, step by step examples.

New Features

  • Selection Readout - The Info pane now shows the number of selected records in a table window as well as for drawing layers in map windows. Super!
  • Refresh Streaming and Query Data - Working with streaming data, like queries filling in table windows from remote data sources, can lead to indeterminate number of records and selections. A new Refresh button automatically pops up when counts are unknown, to allow updates of record and selection count.
  • Faster Interactive Selection - Combining the results of a selection template with an existing selection performs faster.
  • Easy License Switches - Upgrading a license, downgrading a license, or just switching a serial number? The new Switch License button in the Help - About dialog makes it easy to change the serial number and license in use on a machine.

New Base Build: 9.0.177

2 July 2022: Build 177 is a Base build that's published as a Windows installer package as well as portable installations. Build 177 includes all new items and fixes from all Cutting Edge builds since the last Base build, build 176. It also includes enhancements since the prior Cutting Edge build, Build 176.7, as well as reconfiguration of Manifold Release 9 licenses as three new versions:

Manifold Release 9 Professional Edition

  • Includes all features and functions of the former Manifold 9.00 Universal license, except Manifold Server.
  • Manifold 9.00 Professional can connect to Manifold Server as a client and Professional can create project files for sharing by Server installations, but Professional edition does not include Manifold Server to serve data outbound.

Manifold Release 9 Universal Edition

  • Includes all features and functions of the former Manifold 9.00 Universal license, and also includes a limited version of Manifold Server.
  • Manifold Server in Universal edition is limited to one Server instance on a server machine, it must be launched from a Command Prompt window, and the Server instance is limited to 20 connections.
  • A Manifold 9.00 Universal license includes simultaneous interactive use of Manifold 9 on the server machine, which makes it easy to configure project files that are served.
  • Manifold 9.00 Universal is designed to support sharing files via Manifold Server in smaller workgroups, where each user will be running a Universal license that allows running a Server instance as well as an unlimited number of interactive sessions on the user's machine. When most users in the workgroup are hosting Server instances, the total number of Server instances makes it easy for the workgroup to share many files.

Manifold Release 9 Server Edition

  • Includes all features and functions of the former Manifold 9.00 Universal license, and also includes a unlimited version of Manifold Server.
  • The unlimited version of Server has no limit to the number of connections, no limit to the number of Server instances on a server machine, and the ability to launch and to manage Server instances as Windows services.
  • A Manifold 9.00 Server license includes simultaneous interactive use of Manifold 9 on the server machine, which makes it easy to configure project files that are served and also to launch and to manage Server instances as Windows services using the Manage Services dialog.
  • Manifold 9.00 Server is perfect for serving data from read-only projects to larger workgroups or, with more powerful server hardware, to entire organizations. The ability to launch many instances makes it easy to organize access to different communities of users based on access URLs and credentials. An unlimited number of connections is perfect for taking advantage of cost-efficient, many core CPUs that can provide very many threads on server machines at low cost.

Super Easy Server Administration · New Features

27 June 2022: Cutting Edge Build 176.7 delivers small improvements to the user interface and a set of really convenient additions to Manifold Server. Server can now run as a Windows service. The next build will likely be 9.0.177, a new base build.

Illustration: The new Service dialog makes it easy to create new Server instances on a server machine, without having to launch a Command Prompt window and configure new instances using command lines.

Manifold Server

  • Exclusive binding - For security, Server binds to the network interface in exclusive mode.
  • Handy title - When launched in a Command Prompt window, Server sets the console title to Server - addr:port - filename. This hides sensitive information like usernames and passwords and it also shows connection information even if that was not spelled out in the command line.
  • New options - Server supports a new -logfolder:xxx command-line option to redirect logs. Server supports a new -service command-line option to run as a Windows service. You can launch multiple Server services running on the same machine.
  • Easy dialog to manage services - There is a new Manage Services dialog that creates and manages Server services on the system. For each service, the command shows its name, path to the served file, network address and port, start type (auto, manual, or disabled), status (starting, running, paused, stopping, or stopped) and process ID.
  • Configure and Refresh Parameters - The Manage Services dialog allows double-clicking a service in the list of services to show and edit service parameters: service name, path to the Server executable, path to the served file, network address, network port, start type, plus additional command-line options. The Manage Services dialog allows one-click refreshing of the list of services.
  • Easy Adding, Editing, Deleting Services - The Manage Services dialog allows adding a new service, editing the parameters of an existing service and deleting selected services. Adding, editing and deleting services requires administrator rights. If the current user has no administrator rights, the dialog disables relevant functionality and shows a prompt to run as administrator.
  • Zero click defaults, ready to go - Adding a new service in the Manage Services dialog suggests a network address (the first registered network address) to use and a network port (starting with the default 9099) that is automatically incremented when adding additional services. For convenience, the dialog provides a list of all registered and loopback network addresses to select from.
  • Dynamic Start and Stop - The Manage Services dialog allows starting and stopping selected services.

Illustration: The new Manage Services dialog makes it a lot easier to manage Manifold Server instances running as services, without needing to hassle with Windows services dialogs. Click the New toolbar button to add a new Server instance. Ctrl-click a row to select it, and then press start, stop, or delete buttons as desired. Double-click a row to change settings like auto or manual launch on system reboot.

New Features

  • Many monitors and RDP? No problem! - A new View - Panes - Fit to Screen command moves all undocked panes and windows on screen. If there are multiple monitors, the command chooses the nearest monitor for each pane or window and puts the pane or window onto that monitor. The command helps locating panes and windows that have been accidentally moved nearly offscreen using the cursor or ended up being completely offscreen due to changes in monitors, for example, when using Remote Desktop (RDP).
  • Distinctive look to autoplaced control points - The Register pane shows automatically placed control points with a distinctive icon. Any editing done to an autoplaced control point removes the autoplaced flag.
  • Fast pan to control points - Alt-clicking a control point in the Register pane pans the map window to that control point.
  • Fast defaults for index names - Creating a new RTREE index for tiles suggests using fields starting with x and y for XY values.
  • Efficient traverse editing - Editing a traverse allows entering a traverse command for the inserted coordinate. This allows entering geometry data as a sequence of traverse commands, with visual feedback at every step.
"...with its speed, previews, variety of available registration methods, suggestions for locations of control points, and now with the way to navigate to control points fast, Manifold 9 is probably the best tool for georegistrations available." - Forum post

New Video

10 Minute Tutorial - Manage Services: Manifold Server is a high speed, fully parallel multiuser spatial database built into Manifold Release 9 Universal Edition that can share projects to many users running Manifold clients like Release 9, Manifold Viewer, and SQL for ArcGIS Pro.

The video shows the new Manage Services dialog that allows launching Server instances as Windows Services for really easy launching and management of Server instances. Launch Server with no need to use Command Prompt windows and command lines, and start and stop Server instances as desired. Super!


Faster Overlays and Selection · Faster LiDAR

17 June 2022: Cutting Edge Build 176.6 introduces dramatically faster spatial overlay functions and faster LiDAR performance with LAZ files. Big jobs that previously took over two and a half hours now can be done in six minutes. Wow!

Spatial Overlay Improvements

  • GeomOverlayXxx Optimizations - Non-topology query functions now optimize cases where a big source table has a small overlap area with an overlay table, as long as the source table has a spatial index. They also optimize cases where a source table has a small overlap area with a big overlay table, as long as the overlay table has a spatial index and the source table can determine its bounds without being read in full.
  • GeomOverlayXxx Faster Returns - Non-topology query functions now return pairs of records for actual overlay incidents, similar to how an INNER JOIN returns results. That avoids situations where many records are returned that are not desired or required.
  • GeomOverlayXxxFilter scale to overlay incidents - A series of global optimizations now allow GeomOverlayXxxFilter query functions to perform proportionally to the number of records that have overlay incidents. A series of such optimizations to GeomOverlayXxx functions apply to various user interface tools that use them, for example, like spatial overlay select templates, as well as the Join dialog when it transfers data between drawings.
  • SelectionXxx functions scale to selection size - A series of global optimizations now allow SelectionXxx query functions to perform proportionally to the number of selected records. The changes appliy to various user interface tools that work with selections. For example, copying a few selected records from a large table now performs much faster.

LiDAR Improvements

  • COPC index validation - Opening a LAZ file with a COPC index validates index data and turns off the index if its data is invalid.
  • Multiple reading heads - Reading a LAZ file no longer progressively caches uncompressed data on disk and instead uses multiple reading heads. This significantly improves performance.
  • Even faster spatial searches - erforming a spatial search on a LAS or LAZ file with a COPC or .mapindxp index works faster.

The above improvements significantly improve the performance of spatial overlays when input data sets are not similar in size or do not significantly overlap. That is a very common situation since often a smaller data set, such area objects for a particular town or parcel, is used to extract data of interest from a very much larger data set, which might cover an entire county or province. The exact performance gains depend on the overlap size, and can easily be 5x, 10x or more.

For LAZ, the combined improvements from increased LAZ speed and query function optimizations are even bigger. A test example used a LAZ file 375 million points with a COPC index and fetched 3.5 million points covered by an area in a different drawing using GeomOverlayTouchingFilter. The time to complete the job in prior builds was two hours and 38 minutes (9230 seconds). Using build 176.6 the time dropped to only six minutes (363 seconds), 25 times faster. If the area was even smaller, extracting fewer points from the LAZ file, the task would have taken even less time.

New Video

Transform JSON Data and View Webcams: We use Manifold Release 9 to extract data from JSON text to create a map of webcam locations in France, allowing us in Manifold to rapidly click to view what any webcam shows. We take advantage of Manifold's unique ability to work with data in tables to rapidly accomplish a task that would be painful, if not completely impossible, in any other GIS.

We begin with a Javascript .js file that we scraped from a Leaflet web map application that shows traffic webcams in France. We use Notepad to prep that .js file for use as a .csv. We import the CSV into Manifold and then we use the Transform pane to quickly create object geometry and to extract individual JSON named values from a JSON string field into new, individual columns for each record, including a "url" field that gives a URL for viewing each webcam.

We style the url field to allow Manifold to automatically launch that URL in a web browser when we want. We show how to replace web character specifications in text fields with french characters, replacing text like "\é" with "é" to match the original French.

We create a map using Bing streets as a background layer, so we can pan and zoom around France and view any webcam in the map. All the above takes only 15 minutes in Manifold, start to finish, showing every detail with no editing to cut out any time. Super! Works in the free Manifold Viewer too!

Note: The video shows techniques to manipulate data scraped from the web into a form useful for GIS. However, many governments around the world publish information on the locations and URLs of traffic webcams in formats like CSV or shapefiles that require no transformation. Download traffic webcam data from your local government site and create a Manifold project that lets you click on webcams near your home, to see how traffic might affect your travel plans!


Faster Web Servers · Activate Everybody · New Features

29 May 2022: Cutting Edge Build 176.5 introduces introduces a new, integrated, parallel Download Manager, Manifold's new, high speed, parallel system for downloading tiles from web servers such as image servers, TMS servers, WMTS servers and ArcGIS REST servers.

Build 176.5 also expands the license activation system to add an option for enabling installation of a license for all users on a machine at once. That simplifies use for some organizations, for server use, and for IMS use in Release 8, which uses the same activation system.

This build also provides conveniences such as persistent data types in the Schema dialog remembering the last-used type, Drag and Ctrl-Shift-Drop to link data sources read-only (which facilitates creating projects for Manifold Server and other shared use), a new email style in tables for rapid emailing, and a Suggest Locations toolbar button in the Register pane for faster georeferencing. A variety of other features and a few fixes are also in the new build.

Download Manager

  • Built in and fully integrated - The download manager is a built-in feature within Manifold that works automatically in background. There is no need to install, configure, or administer any modules or other software. Just use Manifold like always, and web servers seem to be much faster and more responsive.
  • Parallel downloads - The download manager performs multiple downloads simultaneously while taking care not to issue too many simultaneous requests to the same host, using limits similar to those used by web browsers. It also takes care not to issue too many simultaneous requests overall, to avoid exhausting the network.
  • Application-wide cache - The download manager caches downloaded data in an application-wide cache which is only cleared when the running application, such as desktop Manifold, Manifold Server, or a third-party application using Manifold through the scripting API, is closed. That allows the system to reuse downloaded data between multiple dataports connecting to the same server even across different MAP files.
  • Fast cancels - The download manager allows the user interface to cancel outstanding downloads in the middle of those downloads without waiting for the network. This prevents freezes when a map window that shows a web image is getting panned or scrolled or closed in cases when requests for tiles being downloaded could take a long time to determine if they will complete or fail.
  • Image Servers - Image servers like Google and Bing, TMS servers, WMTS servers, and ArcGIS REST servers all use the new download manager for visibly faster web server performance.

Activate Everybody Option

  • Activate all users - Manifold licenses optionally can be installed (activated) for all users on the same system. The Activate dialog includes an option to install (activate) a Manifold license for all users on the same system. The option requires administrative privileges and will prompt the user for administrative credentials.
  • Manage status - The About dialog shows whether the license in use has been installed for all users, and it allows installing or removing the license for all users. Installing or removing the license for all users requires administrative privileges and will prompt the user for administrative credentials.
  • IIS accounts - Manifold licenses installed for all users on the same system work for restricted user accounts for web applications managed by IIS. This allows using Manifold 8 IMS in web applications served by Windows 10+ IIS without any extra configuration for the application pools.

Other Features

  • Suggest Locations - The Register pane includes a new Suggest Locations toolbar button to automatically place target control points at locations suggested by the already placed control points and the current registration parameters.
  • Fast Schema modifications - The Field dialog in the Schema dialog saves and restores the last used data type when creating a new field. This allows quickly adding multiple fields of the same type, for example, quickly adding a series of fields that are all text fields when altering a table's schema.
  • Drag and Drop Read-Only - Drag and Ctrl-Shift-Drop files into the Project pane to link those files in read-only mode. That makes it easy to create projects with read-only data sources, a great convenience when creating projects that will be shared by other users or served by Manifold Server.
  • Send Email from tables and maps - Tables now provide a new style for text fields that are email addresses. Email addresses are shown using the same color as URLs. Right-clicking an email address shows a new Send Email command in the context menu, which automatically launches your mail client, such as Outlook, with the email address loaded in a new email message. That makes it very easy to compose and send an email to the right-clicked address. Works in the Info pane as well, which means that it's easy to send emails to objects picked in maps that have an email address in their attributes.
  • New SQL Functions - The new StringEmailValid function checks if a string is a valid email address, and the new StringUrlValid function checks if a string is a valid URL.
  • Connect through ODBC to temp Databases - The Manifold ODBC driver allows connecting to a new temporary database using DRIVER=...;DBTYPE=TEMP; in the connection string.
  • SQL Server Offset Dates - The SQL Server dataport supports DATETIMEOFFSET and DATETIME2 data types. DATETIMEOFFSET values are automatically converted to the timezone for the current user on both read and write. Reading a date with a timezone converts data to the timezone for the current user. Entering a date without a timezone will use the timezone for the current user.

Manifold Server

6 May 2022: Cutting Edge Build 176.4 introduces Manifold Server, Manifold's new, high speed, fully parallel, multiuser spatial database. Server provides very powerful new technology for sharing vast amounts of data from Manifold project files, enabling many users at once to use data in projects shared by Server.  Server is a built in part of Manifold Release 9 Universal edition, build 176.4 or more recent.   Manifold Server is automatically installed when installing Release 9 Universal.

Manifold Server, called Server for short, is a read-only spatial database server that shares the contents of a Manifold project to one or more Manifold clients. Clients are regular Manifold Release 9 desktop sessions. The free Manifold Viewer and Manifold's SQL for ArcGIS Pro product can also connect to Server. Because .map projects can contain nested links to other .map projects, the project shared by Server can be the top level entry point to a hierarchy that shares the contents of thousands of .map projects, containing many terabytes of data.

Server can run on a machine at the same time as a regular Manifold session, and multiple Server instances can run at the same time on the same machine, with each Server instance sharing out a different .map file. Server is by far the easiest spatial database server to install, load, launch, manage, and use. See examples in the new Manifold Server topic. See also the First Look - Manifold Server video.

Licensing for Connections - Cutting Edge Release 9 Universal edition builds allow an unlimited number of Server connections for beta testing. Release 9 Base builds are expected to include a limited number of Server connections as part of the Universal license with an option for unlimited connections priced separately.

Manifold Server Highlights

  • Easy to Launch, Load, Administer - Server is the easiest to administer multiuser database server around. Simply launch Server in a command line with the Manifold project file containing data to use. No need to mess around with loaders. Change the data in the database? Stop the server and then launch it again with an edited project, or an entirely different project. Share the contents of the database with someone else? Send the .map project file and you're done. Same with backups - easy!
  • Many Clients and Many Servers - Many Manifold client sessions can run on the same machine, with each such session connecting to many different Server instances on that same machine or on other machines. Many Server instances can run on the same server machine, with each Server instance using a different port and/or IP address, and each Server instance can serve many Manifold clients from other machines or from the same machine.
  • Parallel Connections - Manifold client sessions connect to Server using asynchronous, multithreaded, parallel connections for significantly better performance than narrow technology like ODBC. Many threads are balanced on the fly to handle both large and small threads.
  • Server-Side Rendering Pipeline - When rendering big layers most of the work is setting up the rendering task.  Server prepares layers for rendering server-side with full parallelism with only the final stages of rendering happening in the client.  That allows very large data in Server to be browsed by clients almost as fast as if it were local.  Server-side rendering eliminates the need to send tens or hundreds of gigabytes through the network connection to a client for rendering.  You can pan and zoom through a 100 GB vector project through a Server connection almost as fast as if it were local.
  • Server-Side Execution - Queries in projects shared by Server are executed on the server machine, sending only results to clients.  Queries can be executed within the Server, within the client, or in a mix of both. Executing queries within Server avoids sending large amounts of data through network connections.
  • Distributed Parallel Computation - Manifold clients can connect to many different Server installations at the same time, pulling layers from those different Server installations to use together in maps. If a map includes three different layers from three different Server installations on three different machines, when that map is panned and zoomed each of the three different layers will be prepared for rendering and otherwise serviced by the Server machine sharing that layer, so that the computational resources of three different machines will be utilized. Instead of parallel processing on a single computer handling all three layers, parallel processing on four different machines, the three Server machines plus the client machine, will be used to speed up the rendering pipeline for the map.  That can result in visibly faster response with big layers.
  • Database / Data Source Tunneling - Tunneling allows users to reach through Server to utilize data sources within Server.   If a project shared by Server contains data sources that are databases, such as SQL Server, Oracle, PostgreSQL and others, a Manifold session connecting to Server can open those data sources in the Server hierarchy and reach down into them to use their contents.  Other data source content, such as linked files, linked Manifold .map projects, linked Esri geodatabases, and other data sources is also automatically tunneled.  Web sources like Bing or Google image servers or ArcGIS REST servers reachable through Internet is not tunneled, but instead automatically set up for direct connections from the Manifold client session to the web source.   In both cases layers and data sources shared through Server can simply be used without users worrying about the details of whether they are tunneled or not.
  • Servers Nested within Servers - Projects shared by Server can contain Manifold Server data sources, with nested Server data sources automatically setting up pass-through tunneling.   For example, a project shared by Server on machine A might include Server data sources using Server installations on machines B and C.   A Manifold client connecting to Server A will see the Server B and Server C data sources within that project and will be able to open them and use the data and links they contain.   Server A will automatically arrange pass-through tunneling to Servers B and C, which will in turn automatically arrange pass-through tunneling to the data sources they share.
  • Automatic Version Negotiation - Different build levels can be used for a Server installation and for Manifold clients connecting to that Server installation.  When the connection is formed the different versions will negotiate to use a common feature set despite different build levels.
  • Easy User Interface - Both Server and client user interfaces have been kept as simple as possible. Server launches in a simple command line, with a few simple configuration options.  Connections to Server within Manifold clients use the same New Data Source interface used for other databases and data sources.
  • Copy / Paste Server Data Source - Server data sources in a Manifold project are just like any other data source.  They can be saved as Favorites for one-click addition to any new projects, they can be copied from one Manifold session and pasted into a different Manifold session, and they are saved as part of the project whenever a Manifold client project is saved, with automatic reconnection when the saved project is opened.
  • Secure Access - Server can be launched with a user login and password required, to control access when accessible from public Internet.

New Video

First Look - Manifold Server - Introducing Manifold Server, Manifold's new, high speed, fully parallel, multiuser spatial database. Covering in the first 15 minutes the essentials of launching Server, using Server to share data, and connecting to Server from Manifold, the video continues to show different options and key advantages of using Server.

See how to make multiple, simultaneous connections to Server, to share the same data between multiple users at the same time. Launch multiple Server instances on the same machine to share different constellations of data and databases.

Launch queries for server-side execution for breathtaking speed and performance. Connect to databases within Server through automatic tunneling. Connect from the same client to multiple Server instances on different machines to use dozens of threads on different machines for parallel computation and rendering. Amazing!


Selected Only, Super Printing, Fill Pixels, PostgreSQL

Cutting Edge Build 176.3 provides bug fixes, a variety of much-requested features, and significant improvements to printing layouts. It dramatically improves PostgreSQL / PostGIS insert speeds, adds a Fill transform for raster images, and provides a Selection button on the toolbar to quickly toggle filtering to showing only selected records in tables. Layouts can now be printed with automatic, on the fly scaling of any web image layers to provide intended scale, and printing a layout now supports printing images of any size to any resolution.

Illustrations: Applying the Fill transform to a space shuttle SRTM terrain elevation raster with missing pixels (left) by filling in using nearest pixel values gets a really smooth and natural looking result (right). It's really hard to see where pixels were filled. One click does the trick.

Features

  • The new Selected button instantly toggles table windows to show all records or only selected records. Check out the new video below to see how incredibly fast, easy, and useful this new capability is.
  • High resolution printing of huge print sheets - Incorporate images of any size at any resolution within print layouts. Manifold automatically handles all memory issues to enable printing of big images at very high resolution even in big print layouts.
  • Automatic, on the fly scaling of web layers - Use web layers like Bing and Google in maps in layouts and have the web layer automatically scaled to look right when the job is printed. This is a real convenience that makes it easy to create great looking maps.
  • New Fill transform - The new transform template automatically fills missing or visible pixels in images. Automatically fill in missing data using nearby pixel values for a natural look.
  • High speed batch inserts for PostgreSQL - Manifold automatically switches to using Postgres COPY when destination fields have compatible types for dramatically faster batch inserts. The system automatically falls back to using INSERT when target fields have incompatible or unknown binary representations to ensure batch updates happen without errors. Using COPY when possible is especially great for slow connections to PostgreSQL/PostGIS servers due to significantly reduced round trips.

New Videos

See the Videos page for the full collection of Manifold videos. Recent videos added include:

5 Minute Tutorial - Fill Missing Pixels in Rasters - A short video that shows how with just a few clicks we can fill in pixels that are missing from a raster by interpolating from nearby pixels. The new Fill transform in Manifold Release 9 provides three capabilities, all of which are covered in this video. We can fill all visible pixels with the same value, we can fill all missing pixels with the same value, or we can fill all missing pixels with values interpolated from the nearest visible pixels. We also see how to copy and paste styles for rasters. Super! Works in the free Manifold Viewer as well.

5 Minute Tutorial - Show only Selected - A very short video showing off the new Selected button in Manifold Release 9. One click toggles attribute tables from showing all records to just showing selected records, with fast and safe updates. We also show using the Select pane to do statistic selections, choosing records that are in the top 30th, 10th, or 90th percentiles with a single click. Works in the free Manifold Viewer too!

10 Minute Tutorial - Find Similar Lines - A fast paced video: we have two layers with roads in each layer. Our task is to find roads in both layers that are aligned with each other. However, the two different layers come from two different organizations so the roads are not identical and they do not have any attributes in common. We therefore cannot do a simple spatial join that assumes that the same roads which appear in both layers are exactly coincident.

Instead, we use buffers to find roads in both layers that are similar to each other, where the roads mostly follow the same paths. This workflow works for both Manifold Release 9 and also the free Manifold Viewer.

This is an ambitious video with lots of steps, that uses a variety of Manifold techniques to solve a demanding problem where there is no obvious single step solution. It uses buffers, joins, previews, topology overlay, selection, table windows, computed fields and more. A lot of action in what is a relatively short video.


Faster Queries, Raster Sieves, Transforms and Selects

Cutting Edge Build 176.2 provides a new optimization in the query engine for 800x performance increasesfor IN expressions (including NOT IN expressions), plus new SQL functions for attributes and powerful new Sieve functions for rasters.  New transforms provide point-and-click access to Sieve and to random value generation functions.   A new set of Select functions provide easy selection based on uniqueness criteria.  A user-friendly addition to the Register pane pre-loads entered control points to make workflow faster and easier.

Faster Queries

  • The query engine optimizes IN expressions (both for IN and NOT IN) on a single value for all data types, or on a tuple (multiple values of any data type), when there is no index on the searched fields as well as for cases where there is an index on searched fields, by making more efficient use of the index.

As is usual for optimizations that start building and using indexes instead of doing full scans, the speed ups are dramatic, running over 800 times faster than before. For example, consider a test query:

VALUE @count INT32 = 1000;
DROP TABLE t;
CREATE TABLE t (mfd_id INT64, INDEX mfd_id_x BTREE (mfd_id), v INT32);
INSERT INTO t (v) TABLE CALL ValueSequence(1, @count, 1);
INSERT INTO t (v) TABLE CALL ValueSequence(1, @count, 40);
DELETE FROM t WHERE mfd_id NOT IN (SELECT First(mfd_id) FROM t GROUP BY v);

Following are typical results for various numbers of records set by the @count global variable, with "old" being before build 176.2 and "new" using build 176.2:

  • @count = 1000 records: old = 1.110 sec vs. new = 0.029 sec.
  • @count = 5000 records: old = 27.411 sec vs. new = 0.130 sec.
  • @count = 20000 records: old = 482.044 sec vs. new = 0.544 sec.

For 20000 records, the optimization introduced in 176.2 reduces the time required from 482 seconds to about half a second, running well over 800 times faster.

Illustrations: Applying the Sieve transform to a land use and land cover classified raster (left) using a Minimum area of 100 to get the resulting, simplified raster (right).  Pixel values throughout the raster are adjusted so regions of very small pixels are merged into larger neighboring regions, with the pixels in the former smaller regions given the values of the larger neighboring region into which they have been merged.  Sieve functions can be used for many purposes, such as de-noising and simplifying rasters.

Raster Sieves

  • New query functions: TileSieve and TileSievePar. Perform a sieve operation on an image channel. Pixels with the same value are used to form areas.  Areas smaller than the specified threshold are merged into their neighbors and get assigned the value of the neighbor they are merging into. Parameters include the source image, source channel, quantization level, area size threshold in pixels, method for choosing which neighbor to merge into, and thread configuration for the TileSievePar parallelized function.
  • New query functions: TileSieveStep and TileSieveStepPar. Perform a single step of a sieve operation on an image channel.  This can be much faster than performing a full sieve using TileSieve or TileSievePar until all areas below the threshold are merged into larger areas.   Performing a single step instead of running the operation until there are no more areas to merge is sometimes useful as an intermediate step in bigger computations.
  • New tile transform: Sieve. Performs a parallelized sieve operation on an image channel.  Runs until there are no more areas to merge.

SQL Functions and Other Transforms

  • New query aggregate function: Percentile. Returns a value for the specified percentile. Percentile 0 returns the minimum value, percentile 100 returns the maximum value, and percentile 50 returns the median value. Works for values of any type.
  • New query function: StringStart. Reduces a string to the first N characters.
  • New query function: StringEnd. Reduces a string to the last N characters.
  • New numeric transform: Random. Produces random values between the specified minimum and maximum values, with an option to return only whole numbers (on by default).
  • New UUID transform: Random. Produces random UUID values.

Point and Click Selection

  • New numeric select template: Unique. Selects values based on how many times they occur in a table, with options to select all duplicates except one, all duplicates, or only unique values.
  • New Unique templates for other data types. Like Unique for numeric types, but for numeric vectors, binary data, datetime with option to Ignore time, text types with options to Ignore case and to Ignore whitespace, and for UUID data.
  • New numeric select template: Statistic. Selects values based on how large or small they are relative to other values in the table. Options include to select records with the maximum value, the minimum value, the median value, the top N values, the bottom N values, the top percent given a specified percentile, and the bottom percent given a specified percentile.
  • New numeric vector select: Statistic. Like numeric select Statistic, but for numeric vectors.
  • New date select template: Statistic. Like numeric select Statistic, but for datetime values with an option to Ignore time.
  • New text select template: Statistic. Like numeric select Statistic, but for text values with options to Ignore case and to Ignore whitespace

Layouts and Georeferencing

  • Layouts now support minimum and maximum visibility scale limits if specified for map layers.
  • Switching the source window in the Register pane maps already entered control points to source control points by name, to preserve as much of the already entered data as possible.

Scale Ranges and Dataport Upgrades

Cutting Edge Build 176.1 introduces visibility scale limits (also known as scale ranges or zoom ranges) for layers in maps using the Layers pane. The build also provides upgrades to Esri Geodatabase (GDB), Shapefiles (SHP), DBF, and Google KML and KMZ dataports.

GIF animation showing how different layers turn on and off when changing scale by zooming the view in and out.

Visibility Scale Limits

  • The Layers pane Filter button allows showing and editing visibility scale limits (zoom ranges) for map layers on a per layer basis using two new commands: Show Farthest (Max) Scale and Show Closest (Min) Scale.
  • Maximum and minimum scale limits automatically turn layers off and on as the view in the map window zooms in and out in scale.
  • Zooming a map window closer in than the minimum limit hides the layer. Zooming a map farther out beyond the maximum limit also hides the layer. Zooming a map into the scale range between the maximum and minimum limits will display the layer.
  • Layers that are hidden do not participate in interactive operations such as editing, picking, selecting, or snapping.
  • For readability, the Layers pane automatically shortens the listing of max and min scales for map layers to only the first two digits plus an abbreviation. Examples: 1:40k for a scale of 1:40000 or 1:30m for a scale of 1:30000000.
  • Scale limits are exposed as simple JSON text for a layer in the map's properties, making it easy to programmatically set and change visibility scale ranges.

The new capability makes it easy to create map displays that automatically show or hide layers depending on the zoom level (scale) of the map view. We can automatically turn on more detailed layers as we zoom into a map, or show different content depending on the zoom level.

Dataports · Import / Export

  • Exporting data to GDB format (Esri geodatabases) automatically truncates text values to the maximum allowed length, with the names of fields containing truncated values as well as the total number of truncated values reported in the log.
  • Exporting data to SHP format (Shapefiles) automatically truncates text values to the maximum allowed length and reports truncations in the log.
  • Exporting data to DBF format automatically truncates text values to the maximum allowed length and reports truncations in the log.
  • Exporting data to Google KML or KMZ format exports values of fields for drawing records as allowed by KML 2.2, except for binary fields (not supported by KML 2.2). The Name and Description fields are no longer special-cased and are exported as regular fields.
  • To let Google products show labels bound to areas, lines, or multipoints, exporting data to Google KML or KMZ format will export labels bound to an area as bound to a point located at the inner centroid of the area, labels bound to a line as bound to a point in the middle of the line at one half the length of the line, and labels bound to a multipoint as bound to the first point of the multipoint. Labels bound to points will continue to be bound to the point location.
  • Reading data from a Google KML or KMZ file reads field values to KML 2.2 standards.

New Base Build: 9.0.176

Build 176 is a Base build that's published as a Windows installer package as well as portable installations. Build 176 includes all new items and fixes from all Cutting Edge builds since the last Base build, build 175. It includes enhancements to activation and other features since the prior Cutting Edge build, Build 175.7:

Enhancements For All

  • Custom Colors Option - The Tools - Options dialog has a new Colors tab which allows changing system colors. Colors that can be modified include Selection colors, combinations of Selection and Preview colors, colors used for Previews and provisional editing, cache progress colors, colors used for invalid data like unassigned coordinate systems, and unknown dat color, like used for nulls.
  • New LiDAR Cloud Optimized Point Cloud Index - Manifold now supports COPC indices, the new cloud optimized point cloud index from copc.io.
  • Connect to Google Sheets - A new document server dataport provides easy connections to Google Sheets spreadsheet data stored in Google Docs. The dataport takes an URL for a shared spreadsheet and shows it as one or more tables in the Manifold project, with easy refreshing of the data..

SQL for ArcGIS Pro

  • New Launch Option - A new Open SQL 32-bit launch button adds the ability to optionally launch SQL for ArcGIS Pro in 32-bits, to simplify connections to 32-bit Microsoft Office formats in 64-bit windows. Launching SQL for ArcGIS Pro in 32-bits is fully compatible with 64-bit ArcGIS Pro, but it also makes it easy to connect to Microsoft formats like Access MDB without the hassles of installing Microsoft middleware code.
  • One Click ArcGIS Pro Refresh - A new Refresh button in the ArcGIS Pro Add-in ribbon makes it easy to refresh attribute tables and table definitions for all layers in all maps, to pick up changes made outside of ArcGIS Pro, like in the add-in. One click does the trick.
  • Automatic Provisioning of Mobile Geodatabases - SQL for ArcGIS Pro now automatically provisions not only file geodatabases in the new SQL project, but also any Esri Mobile Geodatabases used in the ArcGIS Pro project and also any GPKG or SQLite layers as well.


Enhancements and Bug Fixes

Cutting Edge Build 175.7 concentrates on small adjustments, library updates, and fixes in preparation for wrapping up the current series of cutting edge builds and issuing a new base build.

Automatic KoBo Refresh

  • Manifold automatically refreshes opened KoBoToolbox tables every five minutes.
  • Near-zero overhead: Changes are fetched only when they occur.
  • Automatic refreshes capture any change that advances the table version.
  • Automatically updates when new records are added in the table in the KoBoToolbox server, and also when fields are added or deleted to tables in the server.

The new capability makes it easy to acquire data in the field using survey forms and to instantly make that data available within a Manifold project or pasted into your organization's database servers or Esri apps.

Other Enhancements

  • The Style dialog for table field formatting now uses a self-documenting Positive degrees caption for the hemisphere used for positive degrees when formatting latitude and longitude values, and presents choices using a combo box.
  • The StringFormatAny SQL query function supports choice styles for text values. The original text value is trimmed before matching any of the choices. The Style dialog for text values allows specifying a choice style.
  • Definitions for choice styles when formatting table fields have been improved, shortening the definitions for choice styles that are intended to simply limit values for a field to a specific subset without changing the way these values are displayed.
  • Lists of choices in Style dialogs for table field formatting have Value and Show as captions to make it clearer which column is doing what.
  • The About dialog now reports Windows 11, Windows 10, and Windows Server 2016+ versions in a uniform way using Windows versions labels like those introduced for Windows 10, for example, 21H2.

Third Party Updates

  • CUDA modules have been updated to CUDA 11.5.1, adding performance improvements.
  • The WEBP dataport has been updated to LIBWEBP 1.2.1, fixing some minor WEBP bugs in raster encoding.
  • The internal version of SQLite used for all types of SQLite data, including GPKG, has been updated to 3.37.0. This adds support for STRICT tables, improves the performance of some types of queries, and fixes some SQLite bugs.
  • The C runtime (CRT) library has been updated to 14.30.30704.0, adding native modules for ARM64 architecture in the x64 flavor of the CRT. Download the new CRT from Microsoft when using cutting edge builds. Cutting edge build 175.7 supports both the new CRT version and the previous CRT version seamlessly. This is a preparatory step for the upcoming base build, which will include the new CRT in the MSI and EXE packages used for installation.

Fixes

  • The URL style for text values recognizes URLs with file: and other non-web schemas.
  • Replacing a text fragment using a regular expression no longer fails to ignore case when matching class character sequences such as [a-c] or [abc] if asked to ignore case.
  • Computing a Voronoi diagram no longer sometimes fails to completely build shapes for some points in near-collinear point configurations, for example, a series of points following a reasonably smooth line in short steps.
  • The LAS library dataport no longer sometimes returns incomplete results when working with more than around 500 files. This problem arose from a series of issues occurring because the library was keeping too many files opened simultaneously for prolonged periods of time, hitting various limits within itself and forcing other parts of the system into hitting these limits as well. Work on a fix began by reworking the code to limit the number of files kept open at any given moment. Effort continued to not to lose any performance when files above the limit had to be closed and reopened. In the end, thanks to a some algorithmic changes, instead of not losing too much performance, the system managed to gain a little performance.
  • Exporting labels to DXF or KML no longer fails if label text is defined using a text pattern.

New Videos

See the Videos page for the full collection of Manifold videos. Recent videos added include:

First Look - Choice Styling - Pop-up Lists - The first of two videos on using Choice styling for table fields in Manifold Release 9.

Choice styling is used for two purposes: first, to provide a pop-up list of allowed choices when editing a field, and second, to provide aliases for values that can show the contents of a field in more understandable form. This video shows how to quickly create a pop-up list of allowed choices.

We create a list of allowed choices, and then we add points to a map that shows different types of power plants in the Pittsburgh region, picking the type of power plant from our pop-up list of allowed choices. We show how the pop-up list is available in the Info pane when adding new points to a map, and also in table windows when editing fields in tables.

First Look - Choice Styling - Aliases - The second of two videos on using Choice styling for table fields, showing how choices are used to provide more understandable aliases for what might be cryptic values.

We work with a vector layer that shows land use / land cover (LULC) classification codes for different places in the San Francisco Bay area. USGS numeric codes for land use classification are standard, but they are difficult to remember and can lead to error-prone editing.

We can make our lives much easier by creating a choice table that for each numeric code provides a "Show as" alias that is a text description, for example, showing "Residential" instead of "11". We see how the Choice styling is automatically used within tables, the Info pane, within Labels and so on. It's way easier.

We also compare using Choice styling with joining a description column in the classic way, showing how Choice styling is dynamic and much better for editing.


Collect Data in the Field

Cutting Edge Build 175.6 adds a new dataport for KoBoToolbox, a widely used open source technology for data acquisition using mobile clients or a web browser. The data can be hosted on a server provided by KoBoToolbox (there are generous free options), or on your own system with KoBoToolbox. See the Collecting Data in the Field user manual topic.

Highlights of using KoBo and Manifold include:

Form Builder

  • Design forms quickly and easily using an intuitive form builder.
  • Reuse existing questions and blocks of questions and manage them in the question library.
  • Build complex forms with skip logic and validation.
  • More than 20 different question types available including location, image, video, rating, matrix, and many others.
  • Easily share projects with colleagues and set granular permission levels.
  • Import and export industry-standard XLSForms. Import via URL or upload from your computer.
  • Use forms from other ODK/Enketo apps, like Esri's Survey123. Many work "as is" with no need to edit.
  • Enjoy vast support for learning, with endless "how to" websites and tutorials.

Collect Data

  • Collect data online with an Internet connection or completely offline.
  • Collect data on phones, tablets or any browser using the free KoBoCollect app on Android devices and Enketo on any modern browser.
  • Automatic synchronization between mobile device and server via SSL, ensuring data cannot be read by a third party.
  • Strong safeguards against data loss, even on very long interviews / data acquisition sessions.
  • Data is immediately available right after it is collected and a connection can be found by the mobile device.

Direct Connection

  • New Manifold dataport connects directly to KoBo servers from anywhere in the world. No need for manual downloads and imports.
  • See dynamically linked content within the server, with dynamic updates of new projects and new data added.
  • Connect to KoBo for everyone, KoBo Humanitarian, or your own KoBo server.
  • Connect directly to a specific asset, handy when an account has very many assets.
  • One click refresh to update all assets in an account.
  • Refreshes automatically update assets with any changes in records or fields.
  • The KOBO dataport translates image / audio / video / file sentinels to URLs.
  • Manifold automatically creates drawings to visualize geopoint, geotrace, and geoshape data acquired.
  • Enjoy effortless copy/paste dispatch of KoBo assets to other organizational assets, for example databases like Oracle, SQL Server, MySQL, PostgreSQL/PostGIS and hundreds more data sources and file formats.
  • Manifold is the fastest way to get data from KoBo collection apps into Esri apps: Just copy from the KoBo server shown in the project and paste into your geodatabase or other Esri data store.
  • Use the free Manifold Viewer to review KoBo assets from anywhere in the world.

The new capability makes it easy to acquire data in the field using survey forms and to instantly make that data available within a Manifold project or pasted into your organization's database servers or Esri apps.

Inherited Styles / New Styles

Build 175.6 also adds even more formatting options for field values, including the ability to launch URLs from table fields in browsers. Styles also include the ability to set angular measurements, such as latitude and longitude values in degrees, in different formats. A new style also allows choice fields in tables. Styles set in tables are now automatically inherited by labels.

  • URLs - Automatically show valid URLs using hyperlink styles.
  • Launch URLs - New Open URL command to launch hyperlinks from tables and the Info pane in a browser window.
  • Launch documents, videos, and more - Using URLs we can launch any document, image, or file that can be interpreted by our browser, which includes spreadsheets and other rich documents with modern browsers. Use URL links to maintain rich attribute data for objects in applications like facilities management, real estate sales and management and many more.
  • Longitude and Latitude - Format longitude and latitude values as degrees, degrees and decimal minutes, or degrees, minutes and decimal seconds, along with numerous combinations using other options.
  • +/- or NESW - Indicate positive/negative longitudes and latitudes using + or - signs or N, E, S, and W notation, for any positive/negative hemisphere reckoning.
  • Choice of Decimal Digits - Choose the number of digits after the decimal point for any format that uses decimal points and digits.
  • Automatic Country Styles - Choosing a language-country combination automatically applies that culture's preferred formatting for latitude and longitude numbers for digit separator character (comma or dot) and decimal point character (dot or comma).
  • Automatic Geometry Support - Geometry formats automatically adapt to and support both Manifold geometry types as well as Well Known Binary (WKB) geometry as used in many open source databases and GIS packages.
  • Special Formatting for Vector Locations - New features support automatic formatting for longitude and latitude values used in numeric vectors in typical settings, automatically varying N, E, S, and W designators between longitude and latitude values, in XY or YX order and in any combination of positive/negative hemisphere values, and supporting two component vectors with a longitude and latitude, three component vectors with longitude, latitude, and height or other numeric value, and four component vectors with pairs of longitude, latitude components. Super!
  • Choice Styles - The new Choice option allows specifying "lookup table" style choice lists for allowed values within cells. Those are easy to create and to edit, and enable one-click entry of choices from drop down menus when editing cells in tables or adding new records.

600+ Languages

Language options for styled fields have been extended to include over 600 language-country pairs, supporting the full set of languages in Windows 10. Enjoy instant formatting of date values with instantaneous translations of days of the week and month names to hundreds of languages. It's all built into Manifold.

  • Extensive language support - The Language picker dialog includes features to manage over 600 langauge-country combinations, including a filter box to make it easy to find the one you want.
  • Automatic Language Translations - See the days of the week and month names in over 600 languages, automatically translated.
  • Favorites - Add a frequently used language to Favorites, for a one click choice from the language picker button when setting styles.
  • Automatic Windows Edition Choices - When running on older Windows versions, language lists will automatically mark Windows 10/11 languages that are not supported by the Windows version in use.

Illustrations above: Changing the language choice instantly changes the language and style of a date. Examples show US English, German, French, US Hawaiian, US Cherokee, and Indian Kashmiri style choices to display a datetime field value of 03/01/1867 using one of the built in day, month and year styles. It's all automatic, exactly the way you want.


New Videos

See the Videos page for the full collection of Manifold videos. Recent videos added include:

10 Minute Tutorial - Lat Lon Styles · Labels · Languages - See a fast paced demonstration how to change latitude and longitude styles in tables, to see how those are immediately changed in labels in maps that use those fields, and in the Info pane as well, with spectacular formatting capabilities in Manifold Release 9.

We cover various formats for latitude and longitudes, like decimal degrees, degrees and decimal minutes and so on, including the ability to automatically format latitude and longitude values to handle different ways of using N, E, S, and W letters in format. We cover other formats as well, including dates, URL hyperlinks from text, and numeric vector combinations that include longitude and latitude values.

One click can also set the language-country combination of your choice: Manifold knows over 600 languages and will automatically translate days of the week and the names of months into any of those languages. All this works in the free Manifold Viewer, too!

10 Minute Tutorial - Create and Use a Survey Form - The first of two videos showing how to collect data in the field with Manifold Release 9. We create a new survey form using the KoBoToolbox ecosystem, the same ODK/Enketo based technology used by Esri's Survey123. We create a form to collect information and locations for restaurants in Chartres, France. We use the form to capture data for a restaurant, automatically syncing collected data into our Kobo server. The next video shows how to connect Manifold and automatically harvest collected data.

10 Minute Tutorial - Connect to Data Collected in the Field - The second of two videos showing how to collect data in the field with Manifold Release 9. The first video showed how to create a survey form and to use that to acquire data for restaurant locations.

This video shows how easy it is to form a live connection to the KoBo server storing our survey data, automatically linking tables and drawings into our Manifold projec.t We create a map of restaurants surveyed in Chartres, France, using a satellite layer for background. We add labels and see how when we add more data using mobile or other devices, we can refresh to automatically capture those new locations in the Manifold map. Works in the free Manifold Viewer, too!

10 Minute Tutorial - Fast Table Editing with Transform - See how fast and easy it is to edit tables using the Transform pane in Manifold Release 9. Repetitive edits applying similar changes to different fields can be done fast - really fast! - with highly efficient workflow. Best of all, on the fly previews make it easy to use sophisticated editing techniques like the regular expressions used in this video without fear of getting something wrong. The video shows a real life example of restructuring a table scraped from a NASA website that shows total and annular eclipses of the Sun from 2021 to 2100, converting the table from awkward form as published by NASA into more usable form. Works in the free Manifold Viewer, too!

5 Minute Tutorial - Styling Fields in Tables - Check out the wonderful new ability to style fields in tables in Manifold Release 9: with just a click change how numbers, dates, times, geometry, and more can be presented in a very wide range of formats, with automatic adaptation for different language styles. Automatically switch from using dollar signs and US-style decimal points for currency to German style euro signs and European-style decimal commas? One click and done! Works in the free Manifold Viewer, too!


Schema, Alignment, Functions, and Styles

Cutting Edge Build 175.5 is a large build with many new features. It provides improvements in the Schema dialog that help working with many fields. It provides new SQL functions for generating random data, working with data hashes, and parsing strings representing dates and times into datetime values. It introduces new formatting functions for binary, geometry, and tile data, extends language-culture format adaptations for list and decimal separators, and it provides point-and-click formatting of data displayed in tables with a very wide range of preset and custom formatting options for different data types. Schema dialog improvements make it easier to work with tables that have very many fields, indices, and constraints.

  • Schema - new filter box in the Schema toolbar filters the schema list to only those items that match the filter text. That's a great way to reduce a schema with a hundred fields, like found in some census data, to only those few fields of interest. Click the new filter button to filter the schema list by type, showing all items, or just fields, indexes, or constraints.
  • Align Fields - Align field values in table windows and the Info pane to the left, center, or right margins of cells using Align Left, Align Center, and Align Right commands.
  • Format Fields in Tables - Format binary, boolean, datetime, geometry, numeric, tile, uuid and numeric vectors in table cells using a new Style command that automatically adapts to the data type of the field to show choice, complete with full previews of how the style will look.
  • Language Options - Choose a language-country pair and the style for fields in tables will automatically use that language and country format style. Days of the week and month names are automatically translated into over 600 languages, with datetime formats and other formats automatically adapting to that country's preferred standard.
  • SQL Functions for String Formatting - New SQL functions take various data types and automatically create formatted strings, automatically reckoning the language and country specified in a language argument. That makes it easy to create text string versions of numeric or other values that capture a particular style or report desired data, like the number of coordinates and branches in a WKB geometry object.
  • Random Advances - A rich collection of new Random... SQL functions provides random number generation, random integers, random hashes and more.
  • Other SQL Functions - A new StringDateTime parses a text string giving a date and time and generates a datetime function. That's a great way to convert text into datetime values that can be used by programs and databases. The new DataHash takes an arbitray value (any datatype) and generates a 32-bit Fowler-Noll-Vo hash, handy in many applications.

Rich Formatting

Cutting Edge Build 175.4 introduces extensive facilities to format text, numeric, date, and other data types in fields. This build adds query functions that format values of various types, with automatic integration of national language conventions. Subsequent builds will allow applying this formatting to fields in tables and queries, and automatically carry it over to labels.  This build can be used immediately to format values in labels by using expressions in the label text pattern.

See the Label Text User Manual topic for step by step examples using the new formatting facilities. The new build also provides faster workflow in the New Labels dialog, as well as when editing labels.

Dates and times - The new StringFormatDateTime function automatically formats dateime values using either neutral language settings or a language code like en-US or de-DE, guided by arguments that specify the desired format. Single-letter format patterns make it easy to choose popular datetime formats, with the option to use advanced, custom format patterns as well.

Table at right: Example label illustrations use the text and datetime fields from the illustrated table.

Examples of single-letter presets and results:

  • Short date - 3/25/2020
  • Long date - Wednesday, March 25, 2020
  • Long date + short time - Wednesday, March 25, 2020 1:45 PM
  • Long date + long time - Wednesday, March 25, 2020 1:45:00 PM
  • Short date + short time -  3/25/2020 1:45 PM
  • Short date + long time - 3/25/2020 1:45:00 PM
  • Short month and day - 25 Mar
  • Long month and day - 25 March
  • RFC1123 - Wed, 25 Mar 2020 13:45:00 GMT
  • Sortable - 2020-03-25T13:45:00
  • Short time - 1:45 PM
  • Long time - 1:45:00 PM
  • Universal sortable - 2020-03-25 13:45:00Z
  • Month and year - March 2020

Examples of format parts, using tokens such as dd or MM that can be combined to create custom formats. Options can add a leading zero for one-digit numeric values and can use two characters for text values, for example, 01 instead of 1, and PM instead of P:

  • Day - 25
  • Short week day - Wed
  • Long week day - Wednesday
  • Era - A.D. or B.C.
  • Hour on a 12 hour scale - 1 or 01
  • Hour on a 24 hour scale - 13
  • Minute - 45
  • Month as a number - 3
  • Short month - Mar
  • Long month - March
  • Second - 3 or 03
  • Time marker - AM or PM
  • Short year - 20
  • Long year - 2020

Example - It's easy to create custom datetime formats like 25-Mar-20 1:45 PM

Durations in Days or Seconds - The new StringFormatDurationDays and StringFormatDurationSeconds functions automatically format duration values in days or seconds, automatically taking into account the specified language and other options.

Numeric Formats - The new StringFormatNumber function allows easy formatting of numeric values, automatically taking into account the specified language and other options, such as upper or lower case exponential or hexadecimal notation.

Examples of single-letter presets and results, using an example value of 123456.7890123 and a language of en-US:

  • Currency, with an optional number of decimals - $123,456.79
  • Decimal integer, with optional total number of digits and optional leading zeroes - 123457 or 00123457
  • Exponential, with optional number of decimals - 1.234568e+05
  • Fractional, with optional number of decimals - 123456.79
  • Fractional + digit groups, with optional number of decimals -  123,456.79
  • Hexadecimal integer, with optional total number of digits and optional leading zeroes - 1e241

The default when all format options are omitted is to use the shortest form that preserves all significant digits: 123456.7890123

Other data types - Other new functions provide formatting for vector numeric values, using the same options as for numeric formats, plus a desired list separator, formatting for UUID values, and for Boolean values. Whew! Formats for every taste and requirement.

Expressions in Labels

Cutting Edge Build 175.3 reworks labels to use a text pattern instead of a text field. The new system applies to all use of labels, such as storage, rendering, printing, and so on. A text pattern is much more flexible than a text field: it can reference more than one field, and it also allows easy changes to label texts without changing the table. Future builds will allow formatting field values in the pattern, and will include various improvements for rendering labels. Support for GDB is gradually being extended, and future builds will include several updates specific to SQL for ArcGIS.

Build label text using CASE

Illustration above: Labels can include expressions that use almost any SQL function and feature, such as CASE. The Style pane makes it easy to edit existing label text.

Highlights include:

  • Create labels from multiple fields - Text labels can now be created from multiple fields using a text pattern that refers to fields within square [ ] brackets. Plain text parts of the label can use special characters escaped with a backslash \, and can use unicode specifications, like \u00a9 for a copyright sign.
  • Create labels using expressions - Label text can contain almost any SQL expression within double square [[ ]] brackets, including complex constructions using CASE and similar. Any of the hundreds of SQL functions available can be used, allowing for very sophisticated, on the fly, creation of label text based on numeric fields, geometry, text fields, and arbitrary computations.
  • Fast editing in the Style pane - The Style pane allows fast, easy editing of label text using a specialized dialog with an expression builder.
  • Faster editing of coordinates and traverses - The Info pane saves clicks by remembering the last used view options for the Coordinates tab on a per-window basis (map window or table window). For example, if last we used traverse commands in a window, the next time the Coordinates pane will still be in Show Traverse mode.
  • Read only GDB fields - Special fields in a GDB that cannot be edited, for example, Length and Area, are marked as read-only in Release 9 and in SQL for ArcGIS Pro.

Check out the new video providing a tutorial introduction to creating labels:

5 Minute Tutorial - Labels from Fields and Expressions - A quick look at the new label system in Manifold Release 9 that makes it easy to create labels from fields and expressions. Create label text from multiple fields and also using expressions, taking advantage of any of the hundreds of SQL functions provided in Manifold. A new addition to the Style pane for labels makes it really easy to edit label text, including a full expression builder. Works in the free Manifold Viewer, too!


Interactive Traverse Editing

Cutting Edge Build 175.2 introduces an extensive new system for interactive editing of traverses, including automatic adaptation using the compass rule to close traverses, all part of enhancements to vector editing and the Info pane.  It also includes improvements and fixes for various dataports.  Even if we are not interested in traverses, the new capability for live traverse editing allows us to create lines and areas parametrically by specifying the direction and distance of line segments, a very useful capability in general purpose vector editing. Highlights include:

  • Add new segments using traverse commands - "Grow" a branch for a line or area object using traverse commands by editing the new traverse row for each new coordinate, using Esri-style traverse commands. Grow a segment using straight line segments by direction or angle and distance, or specify circle arcs. This is great for creating lines and areas paramatically, by specifying direction and distance, even if we are not interested in traverses.
  • Live editing of any traverse command - When a line or area object is being created or picked for editing in a map window, the Coordinates tab in the Info pane allows editing traverse coordinates for vector values. Double-click into any row in the Coordinates pane to edit that row, using Esri-style format for the traverse coordinate commands in each row.
  • Edit traverse segments withing branches - Edit any traverse row as desired, even in different branches, to reposition segments or to add new ones.
  • Automatic conversion of arc types - Esri traverse format only allows straight line segments or circle arc segments, but existing line and area objects can consist of ellipse arcs or spline arcs in addition to straight line segments or circle arcs. When editing traverse rows in the Coordinates tab, the system will automatically convert straight line segments, circle arcs, ellipse arcs, or spline arcs into straight line segments or circle arcs depending on the traverse command entered.
  • Close Gap command - A new Close Gap command allows closing a line or areas in traverses by automatically repositioning segments throughout the branch using the compass rule a sophisticated mathematical algorithm for allocating possible errors evenly through all angles and directions, instead of forcing all errors into the final segment.
  • See the Video - Check out the new video providing a tutorial introduction to editing traverses.
  • Dataport Improvements - Numerous miscellaneous updates have improved various dataports, including the ArcGIS REST dataport, GDAL, ERDAS, JPEG 2000, ECW, and Mr SID.

New Videos

See the Videos page for the full collection of Manifold videos. Recent videos added include:

First Look - Edit Traverses - Traverses specify borderlines for areas or lines by describing the segments followed to draw the figure, beginning at a starting point and then going in a given direction for a given distance, then the going in a given direction for the specified distance for the next segment and so on. Traverses are used in surveying for parcel descriptions and in general purpose GIS for drawing figures parametrically, as in drawing a line at a given angle for a given distance.

Manifold Release 9 has the rare ability to edit traverses on the fly, either when interactively creating a new traverse, or to edit existing traverses imported from parcel or other traverse descriptions. The video shows how easy it is to edit traverses in Release 9, including how with one click you can automatically adjust a traverse so it closes precisely, using the mathematically sophisticated "compass rule" to automatically adjust angles and distances throughout the traverse. All this works in the free Manifold Viewer, too!

5 Minute Tutorial - GoTo a Latitude, Longitude Coordinate - When working with maps in Manifold Release 9 it's easy to "GoTo" any latitude, longitude spot with this quick hack.

The video shows how to enter coordinates for any spot desired and to instantly pan and zoom the map view to that location. Works for any layers, vector or raster, and works for the free Manifold Viewer, too!

SQL 15 Minute Tutorial - Find Common Borders with Point and Click Tools - The SQL for ArcGIS Pro add-in for Esri's ArcGIS Pro package provides superb spatial SQL, but in addition it also provides a wide range of point and click tools that encapsulate very sophisticated SQL functionality in point and click panes and dialogs. We use point and click dialogs to extract shared border lines from a map of Canada, the US, and Mexico, doing a spatial self join and other spatial manipulations to produce a new, clean feature class with impeccable geometry.

SQL 5 Minute Tutorial - Add Fields to a Feature Class and Populate - In less than 5 minutes using SQL for ArcGIS Pro, we add three new fields to a feature class in a file geodatabase and then we populate 3500 records with text and numeric values, all with just a few clicks. Way faster and easier than ArcPy or dialogs!



Better Diagnostics, Databases, and Queries

Build 175.1 is a cutting edge build that contains a big set of fixes and improvements for databases, better error diagnostics for operations on data in MAP files, and a rework of query operations for tile masks. Highlights include:

  • Improved Error Diagnostics - Error messages for table design operations and for table record operations in MAP files have been extended to include the names of fields, the names of constraints, and the names of indexes relevant to the error.
  • Data Caches in External Databases - Data sources set to cache data in the parent database check the capabilities of the parent database and proceed without cache if the database does not support all features required for caching.
  • Separate caches for Each Schema - Data sources set to cache data in the parent database use separate cache tables for each database schema. Data sources will continue working without cache when cache tables cannot be created or are inaccessible.
  • UNIQUE Indexes - All databases implement uniqueness requirements implied by BTREExxx indexes using UNIQUE indexes instead of UNIQUE constraints. Using UNIQUE within indexes matches more closely semantics currently in use by the system. BTREExxx indexes created by older versions of the system will continue to work as before.
  • Faster Bounding Boxes - Bounding box computation for geometry data on SQLITE with SPATIALITE or ESRI ST_GEOMETRY extensions (as used in ESRI Mobile Geodatabases) uses ST_MinX, ST_MinY, ST_MaxX, and ST_MaxY functions for much better performance.
  • Automatic Name Compliance - Creating a new table on DB2, Jet, MySQL, Oracle, PostgreSQL, and SQL Server databases with a name specified that is longer than allowed by the server reduces the name of the table to obey server limits on names.
  • Raster TileMask Functions - TileMask and TileMaskReplace SQL functions now produce and accept numeric tile masks, setting pixels as visible or invisible using numeric values within masks.
  • Raster Tile Comparisons - NOT,  AND,  OR, and XOR operators for tiles now accept numeric tiles with 0 or any other values:  0 is interpreted as FALSE and any other value is interpreted as TRUE.  The operators produce a numeric tile with 0 or 1 values. The Compare SQL function and BETWEEN SQL operator for comparisons between numbers and raster tiles and between raster tiles produces numeric raster tile results with -1, 0, or 1 pixel values.

The new activation system is easier

New Activation System

Starting with Release 9 build 9.0.175 and Release 8 build 8.0.31, Manifold® products use a new activation system. The new system provides a never ending crop of activations while being easier to use. All new serial numbers use the new activation system. Upgrading to the new activation system is free for Release 9 and Release 8 licensees.

See the New Activation page for details.

Important: If you do not want to switch over to the new activation system, do not install and activate Release 9 build 9.0.175 or Release 8 build 8.0.31. Activating a newer build using a legacy serial number will automatically upgrade that serial number to the new activation system. That is a one way upgrade: Once upgraded, a serial number cannot be degraded back to legacy status.

While the new system provides great convenience for most people, some licensees may prefer to stay with the old activation system. If desired, licensees can stay with the old activation system by not installing new builds. To stay with the old system, continue using Release 9 build 9.0.174 and Release 8 build 8.0.30. See the New Activation page for more information.


SQL for ArcGIS Pro

New Product: SQL for ArcGIS® Pro

New ! Esri users can now enjoy the world's best spatial SQL as an add-in to their favorite Esri desktop GIS package.

SQL for ArcGIS Pro is a new add-in for Esri's ArcGIS® Pro desktop GIS. The add-in provides spatial SQL for Esri file geodatabases in an ArcGIS Pro project in tight integration with ArcGIS Pro.

The add-in enhances ArcGIS Pro with the world's most powerful desktop spatial SQL engine, Manifold's Radian® engine, to unleash the phenomenal power of SQL from your ArcGIS Pro desktop. Enjoy full-featured SQL, superior quality, and the amazing speed of parallel CPU and parallel GPU query execution, all supported with hundreds of SQL functions for every spatial need.

In Advanced mode the add-in runs spatial SQL with hundreds of file formats, databases, web servers, and other data sources outside of ArcGIS Pro. Ultrafast data storage in the add-in makes it easy to combine huge data from outside your ArcGIS Pro project with data inside the project.

SQL for ArcGIS Pro - Install and Activate - A short new video showing how to install and activate SQL for ArcGIS Pro, and then how to launch the add-in and do real SQL with file geodatabases! The first three minutes show the super easy installation and activation process with the rest of the video showing a quick start to writing and executing SQL queries, including use of the query builder.

See the SQL for ArcGIS Pro page for an overview.

SQL4Arc Home Page

Special Introductory Offer

$145 - SQL for ArcGIS® Pro - Save $100 off the regular price of $245. Single desktop license that includes all SQL for ArcGIS Pro features. Requires Esri ArcGIS® Pro version 2.8 or more recent, including the new ArcGIS Pro 3.x release. Includes free download of maintenance upgrades. This is a fully paid license and is not a limited time license or a lease. Best buy.


New Base Build: 9.0.175

Build 175 is a Base build that's published as a Windows installer package as well as portable installations. Build 175 includes all new items and fixes from all Cutting Edge builds since the last Base build, build 174. It includes enhancements to activation and other features since the prior Cutting Edge build, Build 173.4:

  • New Activation System - Build 175 introduces a new activation system that is simpler and easier to use, and which provides never ending regeneration of activations. All new serial numbers use the new activation system. Using a legacy serial number to activate a build 175 or later installation will automatically upgrade that serial number to the new activation system, starting off with a fresh crop of activations.
  • HTTPS for security - URLs used for Manifold sites in the product and in install packages have been switched from HTTP to HTTPS.
  • Big GPGPU Code - GPGPU code synthesized by Manifold on the fly can use more than 4 GB of GPGPU memory per processing batch, an increase from the former limit of 4 GB per batch. The former limit was difficult to hit: To hit the limit, the query had to have a SQL expression that was dispatched entirely to GPGPU and that expression had to be extremely large. The increase in memory size is aimed at future scenarios, to allow splitting operations into bigger chunks in the future, enabling use of very large memory for processing. Actual code dispatched, of course, will be sized to memory available in whatever GPU cards are installed.
  • Mobile Geodatabases - A new read/write dataport supports connections to Esri mobile geodatabases. Esri mobile geodatabases are SQLite databases using an extension of .geodatabase with specialized ST_GEOMETRY types. Reading and writing ST_GEOMETRY data requires installation of an Esri SQLite extension .dll that Manifold provides on downloads pages. The SQLite dataport allows loading Esri's ST_GEOMETRY extension into Manifold's internal implementation of SQLite.
  • Multipoints - In Field dialogs for all databases that require limiting geometry fields to a single subtype, the list of subtypes for geometry data now includes a pointmulti choice.
  • LiDAR Format Enhancements - LAS / LAZ and LAS library dataports report the file source ID even if it is zero. The LAS / LAZ library dataport also reports the file path for each point.
  • Fixing an Esri Issue with Deletes - Deleting a table in a GDB from Manifold attempts to work around an issue in Esri geodatabase code that can cause a table to become unregistered in a geodatabase when a delete fails. The problem occurs when a table that is being deleted is locked in ArcGIS Pro. In that case the delete cannot succeed but it still starts and fails mid-way after unregistering the table from geodatabase structures. If the delete fails, the dataport checks the status of the geodatabase and if the table remains operable, the dataport marks the table in the metadata to trigger execution of special logic within Manifold that compensates for the table being partly unregistered.


Even Faster Queries, New Esri GDB Features, New Videos

Build 174.4 provides several significant improvements for the query engine and SQL functions, which can provide dramatic speed increases in certain cases.  Other new features provide improvements in ESRI file geodatabase (GDB) connectivity and LAS / LAZ LiDAR operations.

  • Faster File Geodatabases - The Manifold GDB dataport no longer reports indexes on tables returned by file GDB modules as BTREExxx, since Esri's indexes can only be efficiently used to search for individual records, with other operations being unoptimized. This lets the query engine optimize around not having these indexes instead of being tricked into using them with subpar results. Using Manifold optimizations can result in dramatically faster operations than using limited Esri indices.
  • Fixing an Esri Issue with Creates - Manifold's GDB dataport attempts to work around an Esri issue that frequently occurs in geodatabases created by recent versions of ArcGIS Pro.  The issue makes a newly created table fail to register completely. The dataport examines the state of the geodatabase and, if the table has been created and is operable, reports that the table has been created and marks it in the metadata to prompt execution of special workaround logic within Manifold that compensates for the table not being registered completely in the geodatabase.
  • Faster Unindexed Joins - The query engine optimizes unindexed INNER / LEFT / RIGHT joins based on certain very common join conditions for a big speed gain. The performance gains depend on the number of records in the involved tables, but are typically really big, similar to the performance difference between indexed and unindexed joins. Unindexed joins that took minutes often can be done in a few seconds. Wow!
  • On the fly Table Creation within File GDB using SELECT INTO - Dynamic creation of tables within Esri file geodatabases as a result of SELECT INTO queries is now easy, with new facilities to add property values to tables created in the GDB. That allows specifying geometry type and other Esri requirements. The feature also makes on the fly table creation with SELECT INTO easy in GPKG and other data sources which use properties to control how tables are used.
  • New and Improved SQL Functions - New GeomOverlayWithin SQL functions, including parallelized and Filter forms, do high performance overlays between a primary drawing and an overlay drawing, to return objects within a specified distance of each other. New optimizations for GeomOverlay family functions dramatically improve performance, especially when the overlaid drawings have many overlaps.

New Videos

A new 5 minute tutorial plus big updates on the three main Manifold tutorial videos have just been published. See the Videos page for the full collection of Manifold videos.

5 Minute Tutorial - Spatial Joins are Easier in Manifold - Spatial joins are easier in Manifold Release 9 than in other GIS packages, like ArcGIS Pro or Q.

We first import two shapefiles, one that shows the boroughs of New York City and another that shows the locations of nursing homes in New York. Next, we do a spatial join that adds up the capacities of the nursing homes in each borough to create a Total Capacity field for each borough, and then we thematically format the boroughs by Total Capacity.

Manifold Tutorial 1 - Navigation and User Interface - Welcome to Manifold Release 9! Learn basic navigation moves, user interface, and more in this fast paced video. Watch for a quick launch into effective use of this amazing new tool. Applies to the free Manifold Viewer too. Download the project used from OSM_Venice.mxb (117338 KB), a Release 9 format .mxb archive project (open in 9 or Viewer and it automatically expands into a .map).

Manifold Tutorial 2 - Add Data and Create a Map - The second tutorial continues the Venice example, showing how to import data to create the example map. We see how to import data, how to link it while leaving the data in place in a shapefile, how to copy and paste from other Manifold sessions, how to link in projects for dynamic access, and how to copy and paste data sources. We create labels from imported data. We import a terrain elevation raster and style it. For extra credit we extract just the data we want from a larger OpenStreetMap data set, select a further subset based on attributes, and then we export that result as a shapefile for use in other packages.

Manifold Tutorial 3 - Export Data and Print a Map - We add points to the landmarks layer, showing how to add attributes and how labels automatically are created for those new points. We then export data in various ways, exporting a drawing to a shapefile, exporting an entire map to an ESRI geodatabase, and saving a map in compressed archival form. Next we create a database connection to a PostgreSQL server and we copy and paste a drawing from the Manifold project into the PostgreSQL DBMS. Easy! Finally, we create a layout, we add the map to the layout, add a text frame and then we add an automatically created legend, tinkering with the legend to suit our taste. We print to PDF and open the PDF in Adobe Acrobat to show the PDF printed perfectly.


Natural Earth Natural Earth II

Illustrations above: The Natural Earth and Natural Earth II projections.

Build 174.3 Build 174.3 is another quick build that introduces advances in LiDAR data handling, two new projections, along and UI improvements and configuration conveniences.

  • LAS metadata - The LAS / LAZ dataport as well as LAS / LAZ libraries expose data within built in and custom LAS headers as Info and InfoVLR tables.
  • New Projections - There are two new projections: Natural Earth and Natural Earth II. These are modern projections designed to better portray the entire Earth. Natural Earth II is a more rounded projection, with smaller polar regions.
Left aligned multiline labels Center aligned multiline labels Right aligned multiline labels

Image above: The new Position control allows formatting multiline labels to left, center, or right align text, with full Unicode / international languages support.

Build 174.2 Build 174.2 is a quick build to enhance label capabilities, along with some database and UI improvements and miscellaneous fixes.

Line labels can follow spline segments Line labels can follow spline segments

Image above: Line labels will automatically move to avoid acute angles. In the upper illustration we edit a line to introduce an acute angle. When we apply the change, the label automatically moves to follow the line where it avoids the acute angle.

  • Halos - Rendering curved line labels renders halos.
  • Label positioning - Placing a line label prioritizes placing the label near a straight line segment that is long enough to fit it. If there are multiple such segments, the system uses the segment closest to the center of the line.
  • Acute angles avoided - Placing a line label avoids placing the label onto a sequence of segments with high curvature (large angles between segments), to improve legibility. The maximum bend angle can be specified in the Label Style dialog.
  • Multiline text alignment - Rendering labels with multiple lines of text uses the left, center, or right alignment specified in the in the Label Style dialog.
  • EPSG Updates - EPSG coordinate systems that switched bases (5 cases) and coordinate transforms that switched source or target systems (3 cases) in the latest, 10.19 version of the EPSG database have been adjusted to coincide with their EPSG definitions.
  • Startup tips for new users - The gray background area of the main Manifold desktop window shows a dimmed Manifold logo and dimmed text with tips for new users.
  • PostgreSQL Collations - Creating a primary key on an existing text field in PostgreSQL always uses the collation of the field. This became a requirement in PostgreSQL 13. Secondary indexes continue to be able to use collations different from those of the fields.
  • MySQL and SQL Server Collations - Creating an index on an existing text field in MySQL or SQL Server always uses the collation of the field and does not attempt to change it. Previously, adding an index on a field that was not part of any other index attempted to change the collation of the field to that specified for the index. The system no longer does that and instead shows, for a likely edit, the collation of a field directly in the user interface.
  • Nested include directives within queries - Nested include directives in queries now resolve from the current data source instead of from the data source of the topmost query. This allows composing a query with includes, then including that query from within a different data source with nested includes resolving correctly.
  • References to components within included queries - References to components in included queries now resolve from the current data source instead of from the data source of the topmost query. This allows composing a query which references a script function, then including that query from within a different data source with the script reference resolving correctly.

Line labels can follow spline segments

Image above: Line labels will smoothly follow curves in spline segments. In addition to straight segments, Manifold lines can be built from circle arcs, ellipse arcs, and splines.

Hardware Videos

Hardware videos from a software company? Sure! Manifold's staff includes world-class hardware talent from innovative computer systems and leading CPU and GPU companies, like Intel, to ensure Manifold software provides maximum price / performance on real-life hardware.

Check out other recently-added videos lower down on this page. See the Videos page for the full collection of Manifold videos.

Manifold Hardware - David vs. Goliath - Part 1 - A hardware video, taking a look at some of the hardware used in Manifold videos, including Manifold E boxes used for software development. Part One of the David vs. Goliath comparison shows the 48-thread Threadripper machine shown in various videos, and compares that in size to an ultra-small 8 thread Ryzen 3 mini-ITX motherboard. In the David vs. Goliath comparison, which machine will be faster? ...David running Manifold Release 9, or Goliath running ESRI ArcGIS Pro? Stay tuned to see!

Manifold Hardware - David vs. Goliath - Part 2 - Part two of the David vs. Goliath hardware comparison takes a closer look at the tiny, mini-ITX, Ryzen 3 system that plays the David roll, showing the low-profile case that makes for a highly portable, low cost system that's great for GIS. The video discusses various options for even more power in such very low cost, high performance, super portable rigs with superb keyboards and great displays.


Build 174.1 introduces new label functionality, including labels that follow curved lines, with extensive support for Unicode and multiple languages. The build also provides truly convenient drag and drop capability to easily import or link data into a project from files or databases browsed in Windows Explorer. Other conveniences include support for GDAL/ORG VRT files, both raster and vector, upgrades to EPSG 10.19, a new coordinate system, and enhancements to SQLite and GPKG dataports

Create curved labels using multiple different languages

Image above: Create labels that automatically follow curved lines, using different languages and even mixing right to left and left to right languages in the same label.

  • Drag and Drop to Import and Link - Dragging and dropping files from Windows Explorer into the Project pane imports files, and dragging and Shift-dropping links those files.  The cursor automatically changes to show import or link when pressing the Shift key during the drag. See the new 10 Minute Tutorial - Drag and Drop video.
  • Drag and Drop Direct into Data Sources - Drag and drop data directly from Windows Explorer into data sources, with set up and conversion on the fly. Drag shapefiles from Explorer listings directly into ESRI file geodatabases, PostgreSQL/PostGIS databases or other databases linked into the project. Drag and drop directly into a database is the fastest way in GIS to load up a PostGIS database .
  • Drag and Drop Projects - Drag and drop Manifold .map project files or .mxb archives to pop open projects or to load or link data from other projects. Load or link thousands of components instantly, retaining the full hierarchies and organization of the original projects.
  • Import or Link VRT files - GDAL/OGR VRT files are text files that specify how to import or link lists of individual image or vector files. VRT files are often used to create a single "virtual" raster image or vector drawing from collections of many individual raster or vector files. Linking a VRT in Manifold creates what appears to be a single raster or vector, and importing automatically assembles data from files into a single component. Works with drag and drop, too!
  • Curved Line Labels - Labels that follow lines composed of multiple segments now automatically curved to follow bends in the lines. New algorithms support improved placement of characters and words to avoid label text distortion. Placement is also optimized for lines that are partially in view or off screen. Optimizations support curved labels in high resolution printing and large print areas. Upcoming builds will add even more controls.
  • Advanced Support for Many Languages - The label engine fully supports advanced Unicode features to handle multiple languages, even in the same label. Unicode features include multiple code points collapsing into a single glyph, a single code point expanding into multiple glyphs, all types of whitespace, right to left language text (like Arabic or Hebrew), and more. Mix different languages in the same label, even mixing right to left and left to right languages in the same label.
  • EPSG Upgraded - Manifold now includes the latest, and greatest EPSG 10.19 database, with thousands of upgrades, including to conversion methods.
  • WKT / WKT2 EPSG Upgrades - Writing a coordinate system to WKT or WKT2 (for example, using a Transform template) writes authority codes for EPSG systems. Parsing a coordinate system from WKT or WKT2 reads authority codes for EPSG systems: if the definition of the parsed system matches that of the referenced EPSG system, the system will add the EPSG code to the parsed system, to allow using transforms for that system specified in the EPSG system, for example, transforms based on grid files.
  • SQLite / GPKG + ESRI Upgrades - The SQLite and GPKG dataports have been upgraded to support ESRI ST_GEOMETRY for users who have installed ESRI's optional extension for SQLite. The dataports have also been enhanced to support deleting and renaming table fields.
  • New Projection - A new coordinate system type has been added: Lambert Conformal Conic (Single Parallel, B).

New Videos

Check out recently-added videos for a quick start on new features and to learn the ins and outs of the truly vast range of Manifold capabilities. See the Videos page for the full collection of Manifold videos.

10 Minute Tutorial - Drag and Drop - Drag and drop files from Windows Explorer into Manifold Release 9 or Manifold Viewer to open projects, and to import or link files and databases into a project. This video shows how easy it is to import or to link one file or many files, using many different formats, all at once into a Manifold project. Easily import or link into a project or into data sources within projects. You can actually drag and drop a shapefile from Windows Explorer directly into an ESRI geodatabase data source. Super! Drag and drop is so fast and easy you'll never use the File menu again! Works in the free Viewer too, the quickest way to pop open files in Viewer.

10 Minute Tutorial - TileMaskRange Expressions - We learn how to use the power of Manifold Release 9's many SQL functions without needing to learn SQL. The Transform pane's Expression template allows us to apply individual SQL functions, to transform rasters, vectors, and tables using hundreds of powerful SQL functions.

The example tutorial shows the TileMaskRange function in action, used to knock out unwanted pixels in images, marking them as missing pixels to make them transparent. We first apply the function to knock out unwanted black border pixels from a Landsat image, so the Landsat image can be seamlessly overlaid on other satellite backgrounds. Along the way we see how Previews can show us what will happen next, to guide our choices of parameters. We also show how to invert mask effects.

Next, we use the function to knock out thematically formatted pixels in a terrain elevation raster to create dramatic and useful raster contouring effects. All this works in both Manifold Release 9 and the free Manifold Viewer as well. This is a video version of the Example: TileMaskRange Expressions topic.

5 Minute Tutorial - Find Surrounded Parcels - A recent thread in the Manifold user forum asked how to find all parcels that are completely surrounded by a single other parcel, to find locations where easements may be hosting cell phone towers, or other isolated parcels. This video shows a fast and simple way of finding such parcels using Manifold Release 9 that is way easier than what you have to do in other GIS packages, like ArcGIS Pro.

In less than five minutes of actual work, we use the Join dialog to do a quick self-join, we use the Clip editing command to create an overlay, and then we do a spatial select. Done! What's complicated in other packages is easy in Manifold because of faster and easier to use commands and user interfaces. Works in the free Manifold Viewer too!

"This shows why Mfd's approach to GIS is so good. Flexible tools that allow rapid GIS gymnastics. While version 8 was really great at this, 9 has the join dialogue and now cool drawing tools that add to the quiver. The rapid application of the tools from the minimalist interface makes finding solutions so much more enjoyable." - Forum post

10 Minute Tutorial - Editing with Erase - The new Erase command in Manifold Release 9 removes portions of areas, lines, and points that are erased by drawing new areas or with existing areas. This fast-paced video shows three different examples, including freehand erasing, using areas to erase in different layers, and borrowing an area from one part of a map to erase in different parts of the map. Erase is very fast, flexible, and intuitive, minimizing the number of clicks required for powerful editing. Works in the free Manifold Viewer too.

"What a great video and set of tools! After just a few days of extensively using these tools, editing multiple drawings just became a lot more easy and straightforward. This is indeed an outstanding addition to Manifold vector data editing tools." - Forum post

Erase regions drawn freehand with the Create Area tool Erase regions drawn freehand with the Create Area tool

Images above: Interactively draw areas to erase. You can also pick areas to use as erasers, or enter or edit coordinates for where to erase.

Build 174 is a Base build that's published as a Windows installer package as well as portable installations. Build 174 includes all new items and fixes from all Cutting Edge builds since the last Base build, build 173. It includes enhancements to editing and other features introduced in the prior Cutting Edge build, Build 173.6:

  • New Erase Tool - Fast and easy erasing of portions of existing areas, lines, and points in a specified layer that are either inside or outside of the erasing area. The erasing area can be either an existing area, in the same layer or a different layer, or a new area in the process of being created. Edit coordinates for the erasing area on the fly as well! See the new Erase topic.
  • Clip from Other Layers - The Clip command now allows clipping with objects in a different layer, and allows specifying the layer to clip with. The choice persists in the dialog for that same window. See the updated Clip topic Clip topic for examples.
  • Split Other Layers - The Split command now allows specifying a different layer to split. The choice persists in the dialog for that same window. See the updated Split topic for examples.
  • Split with New or Existing - The Split command can be used with a new or existing line or area, in addition to a path. Use existing objects to split, in the same layer or different layer, or draw a splitting line interactively with a path.
  • Spatial Selections - The Select pane includes a new Spatial template for geometry values, that allows spatial selections to select objects which are adjacent to, contained by, are containing, are intersecting, or are touching records/objects from a different layer. Spatial selections can use either all objects or selected objects. The template always runs full parallel, using multiple threads.
  • New LiDAR Dataport Features - The LAS and LAS Library dataports now automatically scale X, Y, and Z attribute fields based on the coordinate system used. LAS libraries automatically compute shifts and scales for the entire data set, and optimize opening files as their data is needed for even faster launch. LiDAR exports now always use the LAS 1.4 standard with automatic upgrades of prior LAS standard data.
  • Automatic SQL from the Join Dialog - If you prefer running SQL to using point-and-click dialogs, the Join dialog now provides a one-click option to automatically write for you the update SQL that implements the Join as setup in the dialog, without actually doing the Join. That allows easy modification, for example, for custom aggregates and other processing, and to set up automated workflow when Joins are to be repeated, like every week for a newly updated data set.
  • Query Functions for Missing Pixels - A new TileMaskRange query function automates handling of missing pixels in rasters by marking values inside or outside the given range as missing pixels, with an option to include or exclude boundary values. Tile functions for scalar and X2, X3, and X4 vector raster values have been updated with a parameter to include or exclude missing pixels from outputs.
  • Numerous DBMS updates - Numerous updates add features in dataports for PostgreSQL, Jet DB, Jet XLS, Jet WKx, ADO.NET, MySQL, SQLite, Oracle, DB2, OLE DB and ODBC.
  • Many Library Updates - Numerous updates add features in dataports for PostgreSQL, Jet DB, Jet XLS, Jet WKx, ADO.NET, MySQL, SQLite, Oracle, DB2, OLE DB and ODBC.
  • Numerous DBMS updates - Key external libraries used by Manifold have been updated to provide better peformance, greater capabilities and minor fixes, including NVIDIA CUDA, ECW, Google WEBP, and SQLite, with ICU being reworked to use the Windows 10 ICU package whenever Manifold is run on Windows 10.
  • New, Smaller Download - Google's V8 scripting language has been moved from being a built-in to requiring an optional download. This reduces the size of a typical Manifold installation package by almost 20MB, now down to only 53MB. Other built-in languages continue to be built in, with Javascript provided by default using the built-in Jscript.NET language. Manifold continues to support ten scripting languages by default, with five scripting languages built in and always available. See the Scripts topic.
Erase regions drawn freehand with the Create Area tool Erase regions drawn freehand with the Create Area tool

Images above: Erase in action. Start with two layers, a layer showing the Great Lakes and another layer showing the Countries border between Canada and the US in the Great Lakes region. We want to erase from the Countries layer all regions covered by the Great Lakes.

Erase regions drawn freehand with the Create Area tool Erase regions drawn freehand with the Create Area tool

Images above: Easy! With both layers in the same map, Alt-click the Great Lakes area to pick it and then choose Erase to erase instantly those parts of the Counties layer covered by the Great Lakes. The last illustration has the Great Lakes layer turned off to show where the Erase happened. Zero effort sure beats lots of manual clicking!


split an area with a path line

Image at right: Use mouse moves or enter precise coordinates on the fly or a mix of both to draw a path that exactly splits an area on the 17th parallel. Easy!

Build 173.5 adds yet more enhancements to georeferencing, editing, and LiDAR work with LAS and LAZ files:

  • Enhanced georeferencing error reports - Error values for individual control points in the Register pane are automatically translated into the units of measure used in the target coordinate system, like feet or meters or other units.
  • Total Error RMS readout - The Register pane automatically reports total RMS error at the bottom of the pane for the proposed georeferencing.
  • Dynamic snap options for placing control points - Enjoy the full roster of rich snapping capability when placing control points. Combined with the use of multi-layer targets, snapping to any vector layer in the map or to grids for any layer allows precise placement of control points even when the target layer doesn't have the visible features desired.
  • Edit Path coordinates on the fly - When using the Path tool to split areas and lines or to make measurements, coordinates automatically appear in the Info pane coordinates list, allowing precise cutting with on the fly specification of coordinates for the cutting path.
  • Limitless triangulation - Georeferencing using triangulation has always been a popular choice from the many georeferencing methods Manifold provides, but now is no longer limited to within the bounds of control points: Manifold's new triangulation method can georefernce an entire image, even when control points cover only part of the image. Super!
  • Automatic layout updates - Print layouts make it easy to compose sophisticated presentations, using frames that can be populated from many maps with many layers. Layouts now automatically update when changing layers within maps, like adding or removing layers, reordering them, turning them off and on, and changing transparency.
  • LiDAR data enhancements to LAS and LAZ - Manifold is a great tool for manipulating LiDAR data and then exporting to LAS and LAZ. New enhancments automatically embed coordinate system information into the LAS or LAZ file, and automatically use WKT or WKT2 with automatic conversion from other coordinate system specifications into WKT.
  • Export data shortcut - A new, single-click Export Selected command makes it easy to export only selected records from tables. That's a great way to use point and click interactive Selection tools to refine a selection and then instantly export to popular formats like CSV, ESRI GDB, GPKG, JSON, LAS or LAZ, XLS, MDB, and others.

Build 173.4 adds spectacular new editing commands for interactive editing, making it even better as the fastest and easiest way to edit vector layers.

Create Areas and Lines with Automatic Clipping

The new Clip interactive editing command makes it easy to create areas that automatically follow boundaries of existing polygons, to create complex new areas. It's also easy to create new lines that are clipped to complex boundaries.

Suppose we would like to draw a single polygonal area that automatically fills in the regions between building footprint polygons in a neighborhood.

draw an areaChoose Clip

Choose Create Area and in the usual way draw a polygonal area that outlines the neighborhood. Right-click and choose Clip from the pop-up edit menu, and choose OK. Instantly, the provisional area outlines are automatically redrawn to follow the boundaries of building polygons within. We can further edit those if we like, or proceed with a single click to create the new area.

Clipped provisional arearesulting area

Commit the edit (a single click) and Manifold auto-completes the new polygonal area, with open regions that exactly fit the building polygons. We can Cut that new area and Paste it into a new layer to see it without the building polygons, to see the fantastic complexity of polygon we created in just a few seconds and a single Clip command click. The new area is perfectly aligned to the boundaries of the building polygons. Super!

High Speed, One Click Merge

The new Merge interactive editing command provides a super fast, one-click merge to combine areas or lines in place with sophisticated merging of attributes. Merge multiple area, line or point records into one. Merge pops open a dialog which allows switching between merging all objects or just selected objects (the default).

three areasmerged into one area

Transfer rules are automatically remembered to make repetitive edits fast:
  • (none) - Keep the value in the picked record, any field type.
  • copy - Keep the value in the picked record if it is not NULL, otherwise use a first encountered non-NULL value from one of the merged records, any field type.
  • minimum / maximum - Use the minimum or maximum value, any field type except binary.
  • average / sum - Use the average value or the sum of all values, any numeric field type.

Fast and Easy Interactive Split

The new Split interactive editing command uses an interactive cutting line to split areas or lines into separate parts, producing new objects in place for each part and automatically splitting attributes as desired. Split pops open a dialog which allows switching between splitting all objects cut by the line or just selected objects (the default). You can also split using lines or areas in other layers.

three areasmerged into one area

Images above: Draw a cutting line with the tracker, right-click and choose Split. The result at right above has been shifted slightly to show where the split happened.

Transfer rules are automatically remembered to make repetitive edits fast:
  • (none) - Use a NULL value, any field type.
  • copy - Keep the original value, any field type
  • split - Split the original value equally between parts, any numeric field type.
  • split proportional - Split the original value between parts proportionally to their area (for areas) or length (for lines), any numeric field type.
transfer rules

Image above: Transfer rules specify how to allocate attributes into the split results. Population of states, for example, can be split proportionally into the resulting parts, while the name of each of the resulting parts stays the same as the original.

New Interpolation Methods

The latest build introduces two major new interpolation methods, along with various enhancements to existing interpolation methods.

  • Natural neighbors - A new spatial interpolation method originally developed by Roger Sibson. The method is based on Voronoi tessellation of a discrete set of spatial points. This has advantages over simpler methods of interpolation, such as nearest-neighbor interpolation, in that it provides a smoother approximation to the underlying "true" function. Manifold's implementation uses Sibson weights to match the approach taken in ESRI's multi-thousand dollar Spatial Analyst option.
  • Thin-plate spline - A new interpolation method analogous to thin-plate spline algorithms used in georeferencing interpolation.
  • Even more parallelization - All interpolation methods are fully parallel, with parallel SQL functions introduced to enable fully parallel SQL interpolation as well.

Recent Videos

Wow! Lots of new videos to make it easy to learn and apply the wonderful new georeferencing capabilities in Manifold. See the Videos page for the full collection of Manifold videos.

5 Minute Tutorial - Editing with Clip - Spectacular new editing commands in Manifold Release 9 provide super easy, fast, and powerful interactive editing, the fastest and easiest way to edit vector layers in any data source.

The new Clip interactive editing command makes it easy to create areas that automatically follow boundaries of existing polygons, to create complex new areas. It's also easy to create new lines that are clipped to complex boundaries. See how in this short video.

Also see how to combine the Clip command with the new Merge editing command to edit polygons "in place" in whatever data source we want, including ESRI geodatabases, PostGIS, data sources, GPKG, shapefiles or any of hundreds of other data sources. Super! Works in the free Manifold Viewer too.

Newsflash - Merge, Clip, and Split - See a three minute, temporary video showing how to use fast and easy, new editing commands.

  • Merge - Instantly combine multiple areas, lines, or points into a single area, line, or point with fast choice of how attributes should be merged.
  • Clip - Create a new area or a new line and in the same step clip the area or line precisely to the boundaries of overlapping areas, either inside the overlapping areas or outside.
  • Split - Draw a line and instantly split existing areas and lines, with fast choice of how to split attribute values.

5 Minute Tutorial - Create a Multiband Landsat Image -

Landsat data provides images in individual bands, such as Bands 4, 5, and 6, for visual red, near infrared and shortwave infrared. Creating large, multiband Landsat images using many Landsat tiles can involve combining dozens of individual band images.

Manifold Release 9 is perfect for the job, because it can handle many large rasters effortlessly, merging them instantly, and then combining bands into false color RGB multiband images. Manifold does all that with easy to use, point and click dialogs. No need for programming.

This fast-paced video shows how in under five minutes of workflow, including importing the original Landsat data downloaded from USGS. All this works in the free Manifold Viewer too.

5 Minute Tutorial - Scrape an ESRI Feature Server - Working with web-based ESRI feature servers? If you want your own copy all the vector features (points, polylines, polygons) those servers provide that's easy to do with Manifold Release 9.

This video shows how to connect to a typical ESRI feature server, how to drill down and open the feature layer desired, how to copy all the features and to paste them into the local project. It's all a simple matter of point and click, copy and paste. All this works in the free Manifold Viewer too.

5 Minute Tutorial - LAS Point Statistics by Area - Save thousands by using Manifold Release 9: The "LAS Point Statistics by Area" tool in Spatial Analyst for ArcMap and ArcGIS Pro adds attribute fields to polygon features for LiDAR points that fall within those polygons, adding the minimum, maximum, and mean Z values in each polygon, as well as the point count of LiDAR points in each polygon, and also the standard deviation of Z values in each polygon.

The video shows how to do the same thing in just a few clicks in Manifold's point-and-click Join dialog. No need to buy Spatial Analyst. Manifold includes the Join dialog and thousands of other capabilities, all for only $145. Save thousands of dollars and enjoy easier workflow too!

Manifold also is much easier than using expensive products like LAStools, and costs far less in labor than writing your own code in Python, PDAL, or other lower level tools. All this works in the free Manifold Viewer too.

5 minute Tutorial - Georeference Many CAD Layers - Georeferencing CAD layers is a common task in any GIS. Manifold Release 9 makes it a lot easier with fast, simple workflow that avoids extra effort and lets us recycle what we've already done.

This video shows how we can add a few control points just once and then georeference an entire stack of CAD layers imported from a DWG without adding more control points or repeating any work. If the DWG contained a hundred layers we could do them all!

This is much easier than the complicated, more labor intensive procedures in ESRI or other GIS packages. All this works in the free Manifold Viewer too.

Georeference a Scanned Paper Map - In only five minutes of actual work we use Manifold Release 9 to georeference a 157 MB scanned paper map so it can be used as a layer in GIS. The scanned map is a historic map showing Davy Crockett National Forest in Texas, downloaded from the Library of Congress website.

Compare Manifold workflow to ESRI workflow and you'll agree it's a lot easier, quicker, and less confusing in Manifold. Fast GIS is fun GIS!

Georeference a Whole World Image - We see a map we like on a web site so we make a screenshot. How to use that map in GIS? Easy! We georeference it using Manifold. The video shows how to georeference an image scraped from the web that shows the geology of continents as they were 200 million years ago.

We mark four control points in the image, then we roughly mark four corresponding control in a Manifold map using Bing as a background layer. In the Register pane we edit the coordinates of those control points to be even +/- 90 and +/- 180 degrees, and then we press Register. Done!

The video also shows how we can import and georeference a second image similar to the first, without needing to add any control points, just re-cycling the ones we created before. Less work is great!

Previous What's New Pages: See the previous What's New page for prior news.


Manifold runs parallel on all cores

Faster by Design

Manifold is 64-bit and fully parallel throughout, automatically unleashing the incredible power of all of the CPU cores in your system. Four cores or sixty four, Manifold uses them all. Even faster, Manifold automatically launches massively parallel computations using thousands of available GPU cores for supercomputer speed. Running on a 24 core processor? Manifold will use all 48 threads.

Image at right: Manifold running 48 threads with 100% utilization on an inexpensive 24 core / 48 thread AMD Threadripper. Running 48 threads with 100% utilization Manifold takes only 9 seconds to compute Path Distance. ESRI's Spatial Analyst on the same machine takes 12 minutes, using only nine threads with poor utilization. Add Manifold to your ESRI toolset for faster geoprocessing.


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 a serial number sent out by email in seconds. Enjoy the world's most advanced spatial tools today!

 Click to begin shopping

Georegistration preview

A georegistration preview menu when previewing the georegistration of a drone photo. Starting with the same nadir drone photograph as in ESRI's ArcUser example the illustration shows a preview in blue color of georegistering that photo to a known good target layer, a Google satellite layer. Right clicking on the preview bar calls up a menu that controls the display of the preview, allowing it to be seen with partial transparency or with a split screen effect to the left or right side of the display window, with the dividing line between the preview and the rest of the window draggable to the left or right. The preview shows what a simple affine georegistration using six control points will do.

About Manifold

Manifold is a deep technology company creating advanced, parallel algorithms, next-level technology, and computation know-how that powers faster performance and smarter operations.

License Manifold® technology to power your company's products, or take advantage of Manifold's off-the-shelf commercial products. Jump decades ahead of your competition.

Manifold® brand products deliver quality, performance and value in the world's most sophisticated, most modern, and most powerful spatial products for GIS, ETL, DBMS, and Data Science. Total integration ensures ease of use, amazing speed, and unbeatably low cost of ownership. Tell your friends!

Questions? Contact sales@manifold.net. We're happy to help!