GeoMedia Discussions

Search for an answer, post a question, or answer other users' questions in our GeoMedia support discussions. This discussion board is a great way to collaborate with industry peers around the world. It is intended for discussion and support of the GeoMedia Desktop and Add-on applications.
Showing results for 
Search instead for 
Do you mean 
Reply
Highlighted
Frequent Contributor
Posts: 145
Registered: ‎02-17-2016
Accepted Solution

GeoMedia labels from JOIN query

[ Edited ]

I am trying to create a special label for each fire station, to show which vehicles are at that station and their current status. Please see attached screen shot for what I am trying to acheive.  (Sorry, screen shot is not showing up in this post)

So far I have a join query that relates the fire station to the vehicles that are there. In screen shot, there are three vehicles at 'West Denton', with three different status', whereas at 'Pegswood' there are eight vehicles with three different status'. 

 

I do not know how many vehicles there may be at any one station, nor their status'.

 

Can this be acheived with standard legend symbology in GeoMedia? 

 

Highlighted
Regular Contributor
Posts: 229
Registered: ‎05-25-2016

Re: GeoMedia labels from JOIN query

Hi

 

Why you want to make the labels with legend symbology?

Use the labeling tools - or I didn't unterstand your question...

Highlighted
Frequent Contributor
Posts: 145
Registered: ‎02-17-2016

Re: GeoMedia labels from JOIN query

because I cannot acheive the desired label format with the labelling tools. This image, http://i66.tinypic.com/2yv9moi.jpg shows the kind of label I want to acheive. 

Highlighted
Technical Evangelist
Posts: 177
Registered: ‎02-02-2016

Re: GeoMedia labels from JOIN query

Hi Richard,

You’ve raised an interesting question about to how values from a related table might be displayed. Your scenario merits a Service Request that suggests this as an enhancement for a future release.  You’ll want to be sure to offer your ideas as to why such functionality might be useful for other users workflows.  Existing CR Enhancement 1-60AORO (Need Special Presentation Option for 1: Many Joins) may document similar requirements.

 

You may want to experiment with using the Aggregation command to summarize the desired detail UNITS information to the STATIONS points. Similar to Join queries, Aggregation also allows tables to be related based on similar attributes. Detail records (UNITS) in Aggregation can be related to the summary records (STATIONS).   Typically summarization of the detail attributes uses functional expressions such as AVG, MAX, MIN, FIRST, etc that return a single value; but in your case you we can string a string of values.

 

The CONCATENATE function allows you to build a value separated list of detail text attributes:

 

CONCATENATE Syntax:

CONCATENATE(Separator, String, Orderby)

Where the Orderby is optional.

 

ExampleA: We need a list of UNIT names seperated by a semi-colon sorted by the reported time.

CONCATENATE(";"Detail.UNIT_Name,Detail.Report_Time)

 

If instead of a semi-colon delimeter we intead use a line break as a delimitor then we could use the resulting attribute a Map View Tool tip or as input to Insert Label to create a nice list for each parcel.  The  NEWLINE constant can be used to break out a new line.  So if we sub in the NEWLINE our example might look like:

CONCATENATE(NEWLINE,Detail.UNIT)

The resulting functional attribute could be used as a tool tip for the map legend entry OR you could use it for labeling.

 

Other attributes could be included for each line:

CONCATENATE(NewLine, Detail.Unit_ID+' - '+Detail.Current_Status)

Label_of_Concat.png

 

There are other options such as the statistical LOOKUP function which can be very useful.  LOOKUP allows you to pick off one attribute based on locating a value in a different column. 

LOOKUP Syntax:

LOOKUP(what, where, result)

 

Lookup Example:

For example for each set of UNIT records to be associated with a Station, find the unit that’s has the oldest report time. So we might look up MIN(detail.Report_Time) and then lookup the UNIT.

Example: LOOKUP(MIN(Detail.Report_Time), Detail.Report_Time, Detail.UNIT)