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


9,738 post(s)
#29-May-21 16:32

9.0.174.2

Here is a new build.

manifold-9.0.174.2-x64.zip

SHA256: b4b0b432199473ac257031460339affc13131a246a625f80e52bea2ec8e638e0

manifold-viewer-9.0.174.2-x64.zip

SHA256: 9e7f78567242ea2e9316b9f9876d562a5d0d99e54a36ef4829f71bab54ffc310

The build contains various improvements related to labels as well as improvements in other areas.

adamw


9,738 post(s)
#29-May-21 16:36

Changes

Rendering curved line labels renders halos.

Placing a label onto a line prefers 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 one closest to the center of the line.

Placing a label onto a line avoids placing the label onto a sequence of segments with high curvature, to improve legibility. The maximum bend angle is edited in the Style dialog, the default value is 60 degrees. Setting the maximum bend angle to 0 places labels near straight line segments only.

Labels with multiple lines of text, with a box, or with an icon are always placed only near points or near straight line segments.

Rendering labels with multiple lines of text supports reduced graphics mode.

Rendering labels with multiple lines of text uses the alignment specified in the Style dialog. Available choices are: left (default), center, right.

Coordinate systems that switched bases (5 cases) and coordinate transforms that switched source or target systems (3 cases) in the latest version of EPSG have been adjusted to coincide with their EPSG definitions.

The gray background area of the main window shows a dimmed Manifold logo and dimmed text with possible first actions for new users.

The context menu for a component in the Project pane includes the new Open command, which opens the component.

(Fix) Importing data automatically skips tables that cannot be accessed, eg, due to permissions. (This fixes the regression with MDB import in the previous build.)

(Fix) Opening a table that cannot be accessed, eg, due to permissions, no longer creates the fetch record in a table window.

(Fix) Double-clicking a word in a text window no longer sometimes fails to select it if the text has more than 64k characters.

(Fix) Nested include directives in queries resolve from the current data source instead of the data source of the topmost query. (This allows composing a query with includes, then including that query from a different data source with nested includes resolving correctly.)

(Fix) References to components in included queries resolve from the current data source instead of the data source of the topmost query. (This allows composing a query which references a script function, then including that query from a different data source with the script reference resolving correctly.)

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.)

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 was attempting to change the collation of the field to that specified for the index. We no longer do this and will instead show and likely edit the collation of a field directly in the UI.)

End of list.

tjhb

9,824 post(s)
#29-May-21 23:22

The gray background area of the main window shows a dimmed Manifold logo and dimmed text with possible first actions for new users.

Can we please have an option to turn this off? I'm sure it's useful (if perhaps a bit long), but it doesn't need to stare frequent users in the face.

tjhb

9,824 post(s)
#31-May-21 05:44

It would be interesting to know if anyone likes this new feature.

My feeling is that here, as often, explaining is losing.

If there are aspects of the UI that are not obvious, then what is needed is to make them more obvious, not to describe them (obtrusively) somewhere else.

(Also, the dedicated "click and play" croud are not going to read this text. It's too long. It has full sentences. No and no.)

tonyw
635 post(s)
#31-May-21 06:45

What if there were new tips from time to time there in the main window on starting M9? Manifold can invite users to submit tips that are incorporated into a rotating selection of tips. I never knew I could drag and drop files into the project pane to import data. That is immensely useful. And shift-drag-and drop to link data. I can use more tips like those. Those who don't want to see or read the tips can ignore them and just carry on with what they were doing.

Tips can also link to parts of the manual. For instance, "to draw an ocean mask from a coast line line object" click here, which leads to the "Split" topic in the manual. Many times i have a task in mind but spend time trying to find the right tool in Manifold. As an example I was looking through the Transform section of the manual on how to split an area with a line. I remember it mentioned in a change log. I had to do a search in the forum to find this topic http://www.georeference.org/forum/default.aspx?a=0 to see Split is covered under Editing and not under Transform in the manual. The learning curve for Manifold is steep and long. Anything to help flatten and shorten that curve is useful. The start-up tips is an opportunity to describe tasks in lay terms.

tjhb

9,824 post(s)
#31-May-21 06:53

I think that is good thinking, and what you suggest would be a good balance.

(As long as, again, we can turn all the text completely off.)

One or two permanent hints would be enough—basically, import—followed by rotating hints about a mix of salient features and the most recent changes. Great. These could also have hyperlinks. In some cases they could be to recent videos. Even better.

(No, it would still not be Clippy, but that is partly why…)

And the ability to switch the whole darn thing off.

tjhb

9,824 post(s)
#31-May-21 07:51

One thing I want to stress though is that this is false:

Those who don't want to see or read the tips can ignore them and just carry on with what they were doing.

It is not at all simple to ignore emblazoned text (even if it is "dimmed"). It is highly obtrusive.

adamw


9,738 post(s)
#31-May-21 14:59

We will add an option to turn the welcome text off. We understand people can be very particular about such things.

tjhb

9,824 post(s)
#31-May-21 23:16

Thanks. Well said.

Some people go beyond particular into being prickly, peremptory and even grumpy.

ranger.sean103 post(s)
#30-May-21 02:54

Awesome to see labels getting some attention.

The new alignment options in the style dialog also seem to be available for text objects in layouts (and very welcome), however left or right alignment only works if the text element is smaller (narrower) than the character string it contains. Otherwise text is centered relative to the element.

adamw


9,738 post(s)
#31-May-21 15:05

Thanks. The alignment applies to multiline text within a frame, but that multiline text is then centered, this is likely not what is desired. We'll change it.

Mike Pelletier


1,906 post(s)
#30-May-21 22:31

Glad to see halos improved as this format is good for varied backgrounds and tends to get lots of use. FWIW, I'd rather see adding space to labels to avoid overlapping characters rather than messing with the allowed bend angles, as it would probably keep more labels. Thanks for the improvements.

adamw


9,738 post(s)
#31-May-21 15:06

We will allow controlling inter-character spacing as well.

As regards bend angles, we don't expect you to mess with them all that much - the two main expected uses are: (a) decreasing the bend angle for the entire component if the font is particularly quirky when bent, and (b) increasing the bend angle for a particular label if you want its text to appear or move to a better position (in the latter case you can combine that with reshaping the line for that specific label).

Mike Pelletier


1,906 post(s)
#01-Jun-21 20:10

Good to hear. With Mfd 8, setting inter-character spacing was my strategy to keep curved labels legible, at the cost of reducing the number of labels that got placed. I think ideally this strategy could be automatically applied to individual characters as needed to maintain legibility with minimal increase in length of label. Sure appreciate all the effort!

adamw


9,738 post(s)
#29-May-21 16:38

A little more on the behavior of includes in queries.

In an included query:

  • references to scripts resolve from the data source of the included query (at the FUNCTION statement), this is one of the fixes above,
  • references to components in statements resolve from the data source of the included query (at the statement), this is one of the fixes above,
  • references to components in functions resolve from the data source of the caller (at the statement that calls the function), if you want the included query to pass a reference to some table in its data source to the parent data source, you can use VALUE.

Let's say we have a data source named DataSrc, and inside that data source, a query named Inner:

--SQL9

FUNCTION calc(@a INT32INT32 AS SCRIPT [CsharpFuncs] ENTRY 'Script.Calc';

FUNCTION getRootTable() TABLE AS [mfd_root] END;

VALUE @rootTable TABLE = [mfd_root];

VALUE @rootTable2 TABLE = CALL getRootTable();

INSERT INTO [Log] ([Text]VALUES ('included');

  -- ^^ bad idea, this INSERT is just an illustration

With that, the query running in the MAP file that contains DataSrc:

--SQL9

-- $include$ [DataSrc]::[Inner]

 

-- at this point, [DataSrc]::[Inner] will insert a new record into

--   [DataSrc]::[Log], altering data from an included query is normally a

--   bad idea, writes as a side effect of an include are unexpected

--

-- VALUES (calc(2)); -- this calls Script.Calc in [DataSrc]::[CsharpFuncs]

-- TABLE CALL getRootTable(); -- this returns [mfd_root] in the main MAP file

-- TABLE @rootTable; -- this returns [DataSrc]::[mfd_root]

-- TABLE @rootTable2; -- this returns [DataSrc]::[mfd_root]

Hope this helps.

tjhb

9,824 post(s)
#30-May-21 23:51

[poor examples removed]

lionel

769 post(s)
#04-Jun-21 00:29

what mean [DataSrc]::[Inner] ?

could we have a littme *.map file tp test

Manifold Website - what new

Manifold 9 Documentation - What new


union, doc , APIand most important deepl & keyboard shortcut

steveFitz

315 post(s)
#04-Jun-21 02:34

what mean [DataSrc]::[Inner] ?

That syntax refers to a linked component. Something like a WMS file linked in M9.

tjhb

9,824 post(s)
#04-Jun-21 03:34

Incorrect.

Dimitri


6,713 post(s)
#04-Jun-21 12:04

Strictly speaking, that's true, it is incorrect to say that is a linked component. It is a table or query within a different (usually a linked) data source.

lionel

769 post(s)
#04-Jun-21 10:00

Adam write " a query named Inner:"

in a way for beginner , read general information/concept is nice but have real example ready to use could be also be nice ( yes beginner lazy man ...that hate RTFM)

the query inner apply to specific data so "I" need the data and the source of Query inner and also the C# code locate at ... CsharpFuncs( C#name file name) -> Script ( class name inside this file ) -> Calc (public static in Calc (???){} )

it seem sometime that code in forum don't work now because the syntax change.

if map is ready to use , if script/SQL don't work we can think nobody will post a map file that don't work/run ( so we can guess API or syntax change !) . i like in documentation this sentences "copy and paste the above into a Command Window and press !Run to see what it does."

Does this syntax in SQL file change from FUNCTION f(x INT32) to FUNCTION f(@x INT32) so an at sign mark "@" is need now in SQL Function parameter?

Learn today that "::" is call in english the doublecolon punctuation mark

"@" and "::" are cover inside Manifold documentation : Identifiers, Constants and Literals

I express myself in a wrong way. i ll have to write : "i copy paste the code to test but it don't work i need some content file to make the code work in it own context ...can someone post a map file ready to use ?"

regard's


union, doc , APIand most important deepl & keyboard shortcut

Dimitri


6,713 post(s)
#04-Jun-21 12:10

Does this syntax in SQL file change from FUNCTION f(x INT32) to FUNCTION f(@x INT32) so an at sign mark "@" is need now in SQL Function parameter?

Yes, there have been some changes (over a year ago?...). See the Functions topic for examples.

Dimitri


6,713 post(s)
#04-Jun-21 12:02

From the Identifiers, Constants, and Literals topic:

When a query uses fields from different tables, for example in a JOIN, we refer to fields in a table using dot . nomenclature: [States].[Population] means the Population field within the States table. [States].[Capital] means the Capital field within the States table.

When a query refers to tables within different data sources, we can refer to tables within a data source using the syntax [datasource]::[table]. For example, we could write a query that selects all records from the Products table within a data source called mysql as:

SELECT * FROM [mysql]::[Products];

apo
147 post(s)
#04-Jun-21 06:49

Lionel, everything is in this, quoting Adam

we have a data source named DataSrc, and inside that data source, a query named Inner

Dimitri


6,713 post(s)
#09-Jun-21 12:48

See the new Includes, References, and Data Sources section of the Queries topic, which covers adamw's comments in more detail, with examples of the script, etc., involved.

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