Subscribe to this thread
Home - Announcements / All posts - Radian Studio 9.0.163

10,447 post(s)
#16-Aug-17 14:57

A new update for Radian Studio is now available.

The update adds a new rendering engine with support for antialiasing and hardware acceleration, several significant performance improvements to the query engine, new geometry and script functions, and many improvements and fixes in other areas.


344. There is a new rendering engine that supports advanced rendering features like antialiasing and can offload a lot of rendering tasks to GPU. The options dialog allows switching the rendering engine choosing between:

  • Basic, software - rendering engine of 9.0.162 and below, uses software rendering, does not support antialiasing and other advanced features;
  • Advanced, software - new rendering engine, GPU is only used for the most basic tasks like those in 'Basic, software', supports antialiasing;
  • Advanced, hardware acceleration allowed - new rendering engine, GPU is used whenever it makes sense to use it, supports antialiasing.

The default choice is 'Advanced, hardware acceleration allowed'. The 'Advanded, software' choice is intended to be used to work around a temporary issue with the video driver, or for specialized scenarios like programmatic rendering or use under Terminal Services (Remote Desktop). Switching the rendering engine does not require restarting the application, but current rendering tasks will complete using former settings.

345. The advanced rendering engine optimizes rendering antialiased text.

346. The advanced rendering engine improves quality of joins of antialiased lines.

347. Labels for line objects are automatically rotated.

348. Labels overlapping other labels are automatically skipped.

349. (Fix) Panning or zooming a map with one or more layers referring to an invalid component no longer sometimes leaves rendering artifacts in background.

350. Rendering a map with multiple layers performs faster.

351. Resolving overlaps between many labels uses new algorithms and performs significantly faster.

352. Exporting data to any format displays progress and allows canceling.

353. Data sources for databases like SQL Server or Oracle can be refreshed by right-clicking the data source component in the Project menu and invoking Refresh. Refreshing a data source automatically rebuilds virtual components for drawings and images, virtual tables exposing coordinate system info, etc.

354. Small versions of the query builder in dialogs like Select and Transform hide items for aggregate functions.

355. Applying a filter in a query builder list keeps items below those that match the filter. (Setting filter to 'SELECT' will keep the items below 'SELECT ...'.)

356. Applying a component type filter in the Project pane changes the filter button to indicate that the list of components is filtered.

357. The component type filter in the Project pane allows showing only data sources.

358. The controls in the Project pane are slightly repositioned to avoid putting context menus into a monitor to the right of the Project pane, if there is one.

359. Scrolling a window using a scrollbar moves keyboard focus to the window.

360. The recent file list is limited to 32 items.

361. (Fix) The table window no longer sometimes paints field names in the header in gray.

362. Dragging and dropping components in the Project pane always moves data within the same data source and always copies data across different data sources. The '+' sign in the copy cursor has been made larger.

363. (Fix) The Transform dialog adjusts types of indexes for tables created by union and update topology overlays to allow nulls.

364. (Fix) Deleting records from a btree index in a MAP file no longer sometimes breaks the index. (The failure was found during stress testing. It could only happen under very rare circumstances and should nearly always manifest itself with the 'Can't delete record' error.)

365. Tables in MAP files detect inconsistencies in index data and report broken indexes in the log. In addition, affected indexes are made read-only. Table data can be safely copied to another table. Deleting affected indexes is also safe, although not all space originally used by index data might be reclaimed.

366. New query function: GeomSplitToConvex - takes an area geom and decomposes it into convex parts. The function uses a new algorithm, which is significantly faster than in Manifold 8. The function is also much more robust and can handle geometry that the previous algorithm couldn't. New transform: Decompose to Convex Parts.

367. New query function: GeomSplitToConvexPar - a parallel version of GeomSplitToConvex. The Transform dialog invokes the parallel function if parallel execution is allowed.

368. Joins exposing btree indexes detect more cases where duplicates are made impossible by conditions applied on top of joins, and keep indexes unique instead of converting them into indexes with duplicates.

369. (Fix) Outer joins no longer sometimes misapply conditions in WHERE applying to individual tables.

370. (Fix) Outer joins no longer sometimes misapply constant conditions evaluating to FALSE in the scope of a join.

371. Joins and WHERE filters optimize the IN construct for fields used in btree indexes: <field> IN (<value>, <value>, ...). Any btree index type is allowed. A btree index with multiple fields will optimize IN with the first field.

372. (Fix) The IN construct used to match a NULL value against an empty table correctly returns FALSE instead of NULL.

373. (Fix) The IN construct used to match a non-NULL value against a list of values or a table that contain no matches, but contain NULLs, correctly returns NULL instead of FALSE.

374. The IN construct used with tables can use any type of btree index and can use a btree index for part of matched values. (Previously, only a btree index on a single field with no duplicates or nulls could be used.)

375. The IN construct used to match a value against a list of values fails if the values in the list are of different types.

376. (Fix) The query engine no longer sometimes fails to compile queries with nested joins and complex conditions due to unresolved field names.

377. The query engine optimizes joins with '=' join conditions and indexed fields (btree) on both sides using merge scans. This provides significant performance benefits. Indexes on fields may allow duplicates or nulls, the join criteria may use only a subset of index fields (starting with the first). Comparison options on text fields have to coincide.

378. (Fix) The query engine no longer fails to use spatial indexes for SELECT INTO and some other operations.

379. The query engine is better at optimizing query plans when there are multiple alternatives.

380. The query engine is significantly better at optimizing filter criteria in nested joins.

381. (Fix) WHERE filters and joins on indexed text fields no longer sometimes fail to account for comparison options such as NOCASE, and return less data than they should.

382. The type for a new index in CREATE / ALTER statements is no longer optional. (It was optional with a silent default of BTREE. We found that too confusing.)

383. The query engine can cancel queries in the middle of evaluating WHERE or JOIN.

384. Changed script functions: the parameters in Application.CreatePointObj, Application.CreatePoint3Obj, Application.CreatePoint4Obj have been made optional to allow COM clients creating point objects with default coordinates, similarly to .NET clients.

385. New script function: Database.CanMigrate - checks if the database supports migrating data from Enterprise storages.

386. New script function: Database.CanRefresh - checks if the database supports refreshing components.

387. New script function: Database.IsMigrateNeeded - checks if the database contains an Enterprise storage with changes that have not yet been migrated.

388. New script function: Database.IsReadOnly - checks if the database is read-only.

389. New script function: Database.Migrate - migrates an Enterprise storage contained in the database or changes to that storage, if it has already been migrated.

390. New script function: Database.Refresh - refreshes components in the database.

391. Converting coordinate system data to PRJ has been extended and improved. Exporting a SHP file writes coordinate system data as PRJ.

392. Importing or linking a ERS file or an ECW file recognizes many coordinate systems that were previously unrecognized.

393. (Fix) Exporting boolean values to a CSV file puts them in quotes.

394. (Fix) Exporting a table with binary / geometry / tile fields to a CSV file no longer sometimes mislabels (other) fields.

395. Exporting a table to a CSV file exports xN and UUID values.

396. Exporting text values to a CSV file replaces line breaks with spaces to make sure exported data can be imported by as many products as possible.

397. Schemas for views on SQL Server, PostgreSQL and other databases are extended to include a spatial index on each geometry field. This allows drawings created on these views to use existing spatial indexes if the view preserves them.

398. The SQLITE dataport automatically chooses between Spatialite and ESRI's STGEOMETRY extension based on spatial data in the database. (These extensions cannot co-exist and cannot handle each other's data.)

399. The SQLITE dataport supports adding geometry fields for ESRI's STGEOMETRY extension.

400. (Fix) The MySQL dataport no longer sometimes fails due to wrong cursor type.

401. The MySQL dataport requires the version of the client library to be at least 5.1. Older client libraries cannot be used due to incompatible changes to the MySQL ABI.

402. The NC dataport (NetCDF) recognizes 'latitude' and 'longitude' variable names and interprets them similarly to 'lat' and 'lon'.

403. (Fix) Exporting a BIL file or a FLT file forces pixel scale values to be non-negative.

404. The SQLite dataport can read compressed metric created by SpatiaLite without SpatiaLite.

405. The SQLite dataport can read geometry (without indexes) without any spatial extensions.

406. (Fix) The MIF dataport no longer sometimes misreads numeric data from MID files if system locale is non-English.

407. (Fix) The MIF dataport no longer sometimes (rarely) misreads data due to the incorrect default value for the delimiter (comma instead of tab).

408. Connecting to an MDB / ACCDB / XLS or similar file automatically uses Access Database Engine for Office 2016, if it is available.

409. The GPKG dataport detects an attempt to insert a second geometry field into a table and fails it early (the operation cannot succeed).

410. (Fix) Inserting or deleting drawings in GPKG no longer sometimes fails to refresh the Project pane.

411. Dataports creating virtual components no longer override names of existing components.

412. The GCDB dataport reports supported geocoding functions via the 'API' comments component.

413. (Fix) Database dataports correctly handle mfd_meta tables with fixed-width fields created by Manifold 8.

414. Database dataports automatically adjust object names in mfd_meta to include schema names, to help Manifold 8.

415. (Fix) Database dataports correctly handle schema names with backslashes (frequently found when schema names coincide with names of Windows users, as is common practice on SQL Server).

416. The dataport for personal ESRI geodatabases allows renaming or deleting drawings.

417. The dataport for Enterprise storages merges storages from different database schemas together.

418. The ArcGIS REST dataport supports the EXPORT service, which is the default service supported by all ArcGIS REST servers that expose maps. If the server implements the TILEINFO service, the dataport uses TILEINFO (because it is faster), otherwise it uses EXPORT.

419. The ArcGIS REST dataport exposes an image for each layer in a multi-layer server, in addition to the image for all layers (with visibility and styles being set to the defaults provided by the server).

420. The WMS, WMTS and similar dataports work around issues with old-style servers that do not properly decode space characters in URL parameters.

421. The WMTS dataport tries to re-create the bounding box of a layer for which it is not provided from an approximate bounding box in the default coordinate system, if it is provided.

422. (Fix) Attempting to export a TIFF file no longer fails to switch to BigTIFF if the image is bigger than 4 GB.

423. (Fix) Exporting a TIFF file no longer sometimes fails to recover from a failure and shuts down the application.

424. (Fix) Exporting a PNG file no longer sometimes fails to recover from a failure and shuts down the application.

425. (Fix) Exporting a BIL file with INT16U pixel values no longer fails.

426. The .PSV file extension is mapped to the CSV dataport. (Importing or linking a .PSV file using the 'All Files' filter will automatically choose the CSV dataport.)

427. Connecting to databases with lots of virtual components performs faster.

428. (Fix) Exporting an image no longer sometimes moves the progress bar too fast.

429. (Fix) Reading data from a GDB no longer sometimes misreads date values, producing errors on copy and paste.

430. The CTG (LULC) dataport is adjusted to accept no-extension files and autodetect no-extension files that are CTG (LULC) when they are linked or imported using 'All Files'.

431. (Fix) Attempting to import or link a SPOT file no longer sometimes fails because the dataport tries to locate a file in the wrong folder.

432. The DEM (USGS) dataport interprets pixel values lower than -32767 as missing to correct a common error in software that produces DEM files.

433. (Fix) The DEM (USGS) dataport no longer rounds pixel values unnecessarily when there is fractional scale.

434. Database dataports optimize reading metadata for SDE components to help slow database connections.

The update is available on the Product Downloads page.

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