(Fix) Fixed btree indexes in MAP files to no longer sometimes (very, very rarely) desync after deleting data.
(The above failure could only happen with variable-length field values of certain shape. After the failure, the index was refusing to operate and was doing so loudly, throwing error messages. If you never saw any error messages regarding records not being found, you very likely never had the error happen. The failure was not propagating. The failed index could have been safely deleted and recreated. The fix does not automatically heal failed indexes, but prevents future failures in both existing and new indexes.)
There are three new commands to merge data in existing components of different types. All commands work on layers in an existing map. All commands support merging layers from different data sources.
The Edit - Merge - Merge Drawings command allows merging one or more drawings into a single component. The new drawing and the accompanying table are created in the data source of the map. The coordinate system of the new drawing is initially set to the coordinate system of the first layer and can be edited. Right-clicking a layer and selecting 'Use Coordinate System' sets the coordinate system of the new drawing to that of the layer.
If the data source for the new drawing is a MAP file, the drawing table includes the system MFD_ID field and MFD_ID_X index. The values of the MFD_ID field in the source drawings are ignored.
The 'Copy all fields' option controls whether to copy fields other than geometry (on for drawings by default). Fields of the same name and type from different layers are merged together. Fields of the same name but different type are still merged together as long as field types are compatible, with the type of the resulting field being made big enough to hold all values (eg, if field X in drawing A is INT16 and field X in drawing B is INT32, the system will create a single field X in the merged drawing and set its type to INT32).
The 'Save source component for each record' option allows saving the name of source layer into a separate field (on for drawings by default).
The 'Skip records with null geometry' option allows skipping records with null geometry values (off for drawings by default). Null geometry values might occur in the original data or they might be produced when projecting original data to the coordinate system of the new drawing.
The Edit - Merge - Merge Labels command allows merging one or more labels into a single component. The options are the same as for drawings, but 'Copy all fields' is off by default and 'Skip records with null geometry' is replaced with 'Skip records with null geometry or text' and is on by default.
The Edit - Merge - Merge Images command allows merging one or more images into a single component. The new image uses the exact pixel scale specified in the coordinate system (shown in coordinate system metrics readout in the coordinate system dialog). If source images use different pixel types, the new image uses the type big enough to hold all values. In particular, if source images use different number of channels, the new image uses the maximum number of channels. (We are going to better indicate such cases in the dialog, because they are frequently an error.)
Merging data from multiple images follows Z order of layers specified in the dialog, with pixels from upper layers overwriting pixels from lower layers.
Merging data from images includes special provisions for cases where the coordinate system of the original image coincides with that of the new image up to pixel scale and only differs in offsets. In such cases, pixels in the original image are not reprojected and keep their exact values.
Merging data from images uses multiple threads if this is beneficial. (Currently, we are only using a single thread only if all source images are copying their pixels without reprojection. Whenever there is scaling or any other operations, we are using multiple threads.)
Merging images into a MAP file generates intermediate levels for the new image at the end of the merge.
Merging components of all types reports progress and allows canceling.
Geometry values with mixed 2d and 3d coordinates in GML, GeoJSON, TopoJSON are automatically converted to 3d with 2d coordinates padded with zeros. (Previously, such geometry values were rejected.)
End of list.