My Account     Contact Us     Cart

Mapping Class: Efficient Labeling using attribute expression builder with Steve Spindler

Welcome back to this month’s edition of Mapping Class. The Mapping Class tutorial series curates video tutorials and workflows created by experienced cartographers and Avenza software users. Joining us once again is Steve Spindler, a longtime MAPublisher user, and expert cartographer. Steve is here to show you a quick tip for using the attribute expression builder within MAPublisher to quickly perform batch edits of labels. 

Steve has produced a short video to demonstrate how he uses the expression builder to quickly edit street names. The Avenza team has produced video notes (below) to help you follow along.

***

Label efficiently using Attribute Expression Builder
by Steve Spindler (video notes by the Avenza team)

With MAPublisher, labeling your maps is a breeze. With powerful tools such as LabelPro, labeling is only a matter of selecting the data you want to label, and configuring a robust set of rules that control how each label is placed and styled. But before you can start labeling, you must have high-quality, accurate attribute information for your map data. Since labels are typically generated by displaying text values contained in an attribute column, it is important that attributes are not only accurate but are also formatted in a way that is optimized for display on a map. In many cases, cartographers need to spend time reformatting or editing attribute information before they can generate labels, a process that can become quite time-consuming. Nowhere else is this problem more common than when dealing with street names and road network data.

This image has an empty alt attribute; its file name is Tools.jpg

When labeling streets, cartographers often spend time correcting, or even generating brand new attribute information that can be used to create more concise, effective street labels. This typically involves changing street prefixes and suffixes to a condensed short form (i.e “North Cherry Boulevard” becomes “N Cherry Blvd”). For smaller projects, this can be done by manually editing the individual attribute values directly within the MAP Attribute panel. For large projects, especially those dealing with hundreds or even thousands of map features, manual editing would be very time-consuming.

For a more efficient approach, Steve shows how you can use the Expression Builder to easily modify large selections of attribute values. The first step is to open the MAP attribute table, which displays all the attribute information contained within a specific map layer. Steve identifies the attribute column that contains the text street names and will use this to build out a new attribute column to create his labels.

This image has an empty alt attribute; its file name is Buiiklder-1024x691.jpg

Next, Steve opens the Edit Schema window of the attribute table. Here, you can access column information such as the data type, default value, field visibility, and most importantly; the expression builder.

The expression builder may seem intimidating at first, but with a little bit of effort, it can be an incredibly powerful tool for calculating attribute values and performing batch-edits on your data. The tool uses built-in operators and items in the objects list (attribute names and values, constants, functions) to calculate custom attribute information based on a specified set of expressions. In this case, Steve first creates an expression set that modifies the suffix values in the Street name field (i.e “Boulevard”) and substitutes them with the appropriate short form (“Blvd”). The expression is used to populate a new attribute column called “Road_suffix”. The end result means attribute values such as “East Utica Street” will be passed to a new attribute value of “East Utica St”.

This image has an empty alt attribute; its file name is inputs.jpg
IF_CASE(name,
ENDSWITH(name, “ Street“),SUBSTITUTE( name , “Street”, “St”),
ENDSWITH(name, “ Drive“),SUBSTITUTE( name , “Drive”, “Dr”),
ENDSWITH(name, “ Road“),SUBSTITUTE( name , “Road”, “Rd”),
ENDSWITH(name, “ Court“),SUBSTITUTE( name , “Court”, “Ct”),
ENDSWITH(name, “ Way“),SUBSTITUTE( name , “Way”, “Wy”),
ENDSWITH(name, “ Lane“),SUBSTITUTE( name , “Lane”, “La”),
ENDSWITH(name, “ Route“),SUBSTITUTE( name , “Route”, “Rt”),
ENDSWITH(name, “ Boulevard“),SUBSTITUTE( name , “Boulevard”, “Blvd”),
ENDSWITH(name, “ Turnpike“),SUBSTITUTE( name , “Turnpike”, “Tpke”),
ENDSWITH(name, “ Avenue“),SUBSTITUTE( name , “Avenue”, “Ave”),
ENDSWITH(name, “ Place“),SUBSTITUTE( name , “Place”, “Pl”),
ENDSWITH(name, “ Circle“),SUBSTITUTE( name , “Court”, “Cr”),
ENDSWITH(name, “ Highway“),SUBSTITUTE( name , “Highway”, “Hwy”),
ENDSWITH(name, “ Expressway“),SUBSTITUTE( name , “Expressway”, “Exp”)
)


Next, Steve creates a second set of expressions that will further adjust his Road_suffix attribute column to substitute any street name prefixes (North, East, South, West) with their corresponding short-form (N, E, S, W). This second expression (see code block below) is used to populate another new attribute column called “Label”, which will ultimately be used to generate the final formatted label layer. 

((IF_CASE( Road_suffix ,
STARTSWITH(Road_suffix, “West “), SUBSTITUTE( Road_suffix, “West “, “W “),
STARTSWITH(Road_suffix, “South “), SUBSTITUTE( Road_suffix, South “, “S “),
STARTSWITH(Road_suffix, “North “), SUBSTITUTE( Road_suffix, “North “, “N “),
STARTSWITH(Road_suffix, “East “), SUBSTITUTE( Road_suffix, “East “, “E “)
))

This image has an empty alt attribute; its file name is ExpressionAttributes.jpg

Note that these expressions are specific to the dataset and map area Steve is using for his project. When using expression builders for your own maps, pay careful attention to the attribute values specific to your area of interest. The best part about expression sets is that they are highly flexible, meaning you can build upon and modify existing expressions, save them to your library, and even use them across multiple different mapping projects!

With his newly created “Label” attribute column, it’s simply a matter of configuring the LabelPro tool to display these formatted label values. With a bit of configuration, the end result is a clean, uncluttered, collision-free label layer. The labels now use all the correct prefixes and suffixes Steve required. By saving his expression sets to his library folder, Steve can now quickly and easily repeat the exact same batch-editing process for new maps with only a few clicks! 

This image has an empty alt attribute; its file name is ExpressionBuilder-1024x249.jpg

***

About the Author

Steve Spindler has been designing compelling cartographic pieces for over 20 years. His company, Steve Spindler Cartography, has developed map products for governments, city planning organizations, and non-profits from across the country. He also manages wikimapping.com, a public engagement tool that allows city planners to connect and receive input from their community using maps. To learn more about Steve Spindler’s spectacular cartography work, visit his personal website. To view Steve’s other mapping demonstrations, visit cartographyclass.com

Avenza Releases MAPublisher 10.8 for Adobe Illustrator

Toronto, ON, April 27th, 2021 – Avenza Systems Inc., producers of the Avenza Maps® app for mobile devices and geospatial plugins for Adobe Creative Cloud®, including Geographic Imager® for Adobe Photoshop®, is pleased to announce the release of MAPublisher® 10.8 for Adobe Illustrator®. This latest version provides user interface and usability enhancements for several tools, an updated coordinate systems library, raster ECW format support, and other mapping engine enhancements.

MAPublisher cartography software seamlessly integrates more than seventy GIS mapping tools into Adobe Illustrator to help you create beautiful maps from GIS data. Import industry-standard GIS data formats and make crisp, clean maps with all attributes and georeferencing intact using the Adobe Illustrator design environment.

New features of the MAPublisher 10.8 plugin for Adobe Illustrator include:

  • User Interface and Tool Improvements: 
    • Multi-select attribute columns to batch modify attribute properties
    • Line Plotter allows multi-select MAP locations
    • MAP Themes now includes overprint options 
    • Document Summary panels will now provide MAPublisher “last saved with” version information
    • Scale Bar, Create Legend, and Elevation Profile preview panel can now display background colours
  • Raster ECW Support: Import and work with Enhanced Compression Wavelet files 
  • Updated Coordinate Systems: Engine enhancements including an updated coordinate system library

 

MAPublisher 10.8 is immediately available free of charge to all current MAPublisher users with active maintenance and as an upgrade for non-maintenance users starting at US$649. New licenses are available from US$1499. MAPublisher FME-Auto and MAPublisher LabelPro are also available as add-ons starting at US$499. Academic, floating, and volume licences are also available. Prices include one year of full maintenance. Read more about MAPublisher 10.8 in our release blog, or visit www.avenza.com/mapublisher for more details.

More about Avenza Systems Inc.

Avenza Systems Inc. is an award-winning, privately held corporation that provides cartographers and GIS professionals with powerful software tools to make better maps. Avenza also offers the mobile Avenza Maps app to sell, purchase, distribute, and use maps on iOS and Android devices. For more information, visit www.avenza.com.

For further information contact:  416-487-5116 – info@avenza.comwww.avenza.com

What’s New in MAPublisher 10.8

What’s New? MAPublisher 10.8

We are happy to announce that MAPublisher 10.8, the latest update to the MAPublisher plug-in for Adobe Illustrator, is now available. With this release, we are excited to bring forward new usability enhancements for several MAPublisher tools. We are also thrilled to confirm that MAPublisher now supports raster files in the enhanced compression wavelet (ECW) format. Alongside these enhancements, we have also implemented improvements and added expanded support to our coordinate system library.

Here is what you can expect with the latest MAPublisher 10.8 release:

Usability Improvements for MAPublisher Tools

The Avenza team is always working to improve the capabilities of our vast suite of cartography tools. We work with our users to implement improvements to our tool catalog that truly meet the needs of actual mapping professionals. In this release we are introducing several enhancements to some of our existing tools:

Multi-Column selections in the Attribute Table Editing Schema

In the early versions of MAPublisher 10, we added the ability to select multiple columns within the Edit Schema window of the MAP attributes panel, allowing users to toggle visibility settings on multiple attribute columns at the same time. Now with 10.8, we are delighted to build on this by implementing the ability to configure data properties across multiple selected attribute columns. Users can not only toggle visibility or remove multiple attribute columns at once, but can now also edit default values, attribute size, and read-only settings for all selected values. Additionally, users can now change the data type (i.e string, integer, boolean, etc) for multiple selected attribute columns all at once, as long as each column shares the same starting data type. 

Select and add multiple MAP Locations in Line Plotter

We continue to bring improvements to the Line Plotter tool, this time by introducing the ability to select multiple MAP locations and add them to the line vertices (node) list. For users familiar with the Point-by-point plotting method in Line Plotter, this will be especially useful for adding a large collection of sequential MAP locations, as previously each point needed to be entered one at a time. 

Document Summary Panel now includes “Last Saved with” Version Info

For users working with MAPublisher projects across different versions of the software, you will be delighted to know that the document summary dialogue now includes information indicating the version of MAPublisher the project was last saved with. This information will help users that frequently share MAPublisher projects with colleagues, allowing them to better establish version standards across collaborative projects. 

Overprint Options in MAP Themes

Previous versions of MAPublisher required a user to navigate the Illustrator attributes panel to configure overprint options for each map element individually and refer to these options separately using MAP Themes. Now with MAPublisher 10.8, an overprint option has been implemented directly within the MAP Themes panel, allowing users to configure overprint settings for fills and strokes within each stylesheet in the MAP Themes tool.

Scale bar, Create Legend, and Elevation Profile tool previews with Background Colours

We have added a small improvement to the scale bar, create legend, and elevation profile tool panel. The preview window for these tools, which allows users to adjust and edit their visual properties before adding them to the map, now has the option to configure a preview background colour. This option is helpful when configuring light, or white-coloured map elements which were previously difficult to see against the default white preview background. 

Support for Raster ECW file formats

New to MAPublisher 10.8, we now include Enhanced Compression Wavelet raster files to our growing lists of supported data formats. Users can now import and work with ECW files directly within the MAPublisher environment of Adobe Illustrator, all while retaining necessary spatial integrity, and without needing to convert your data. 

Engine Improvements and Updated Coordinate system catalogue

We are working continuously to improve the back-end MAPublisher engine to ensure our users can continue their work in an optimized, seamless,  design-focused cartographic environment. Along with improvements to our engine and bug fixes, we have built on our current coordinate system catalogue with updates to the coordinate system and projection library. This means our list of supported projections has grown, with new additions including the Natural Earth and Natural Earth 2 Projections created by Tom Patterson. For a full list of our expanded coordinate systems library please check the projections guide in the Avenza Support center.

MAPublisher 10.8 is immediately available today, free of charge to all current MAPublisher users with active maintenance subscriptions and as an upgrade for non-maintenance users. 

Find out more at the Avenza User Conference!

Want to learn more about MAPublisher? Want to see how industry professionals are using Avenza Products in their organizations? Join us on May 12th, 11am – 5pm (EST) for the first-ever Avenza User Conference. Registration is Free!

The event will feature a full day of speaker presentations from the Mapping and Geospatial communities. The Avenza Product teams will also be on hand to answer questions and give you a sneak peek of upcoming developments to the Avenza Platform. Sign up for free at avenza.com/user-conference

Avenza User Conference 2021

 

MAPublisher 10.3 Released

We’re excited to announce the release of MAPublisher 10.3 for Adobe Illustrator. We’ve listened to your feedback and worked closely with our users to build features to improve map design and productivity. Stay tuned for more blog posts and other resources that go deeper into some of the new features. For now, here’s an overview:

MAPublisher 10.3

This update contains new features and performance improvements as well as fixes for reported issues. Some highlights are summarized below, for the full release notes see below.

Compatible with Adobe Illustrator CC 2019. We’re committed to providing the best GIS and cartography tools for building great quality maps in Adobe Illustrator. Improvements to our user interface to support high-resolution monitors, and this release is fully compatible with the latest Adobe Illustrator CC 2019 on both Windows (32-bit and 64-bit) and Mac.

Create Elevation Profile charts. An often-requested feature from our users, elevation data for points along a selected path can now be collected and displayed as an elevation profile in a highly customizable chart. The data is downloaded in real-time from a server (internet connection is required), which can then be customized to your liking using the available settings. Frequently used settings can even be saved for future use.

View data distribution when batch generating rules in MAP Themes and MAP LabelPro. When selecting a data classification in MAP Themes or MAP LabelPro, you now have the ability to see how it affects the data distribution in an interactive histogram and chart. Histograms are a great way to visualize continuous data in intervals and useful for large sets of data points.

Improved attribute capabilities in ‘Join’ tools. We have added many attribute management improvements to MAPublisher Join tools (Join Areas, Join Points, and Join Lines). You can now better manage how attributes are handled during a Join process, including the ability to calculate new attributes. We also added additional operations to help you better sort and calculate statistics from attributes.

MAPublisher 10.3 Release Notes

  • Compatible with Adobe Illustrator CC 2019
  • Create Elevation Profile charts
  • View data distribution when batch generating rules in MAP Themes and MAP LabelPro
  • Improved attribute capabilities in ‘Join’ tools
  • User interface and usability enhancements

 

Optimizing Point Symbol Placement with MAPublisher LabelPro

This post was contributed by Hans van der Maarel of Red Geographics.


The problem with using GIS data for point symbols is that depending on the scale and symbolization you often end up with symbols partly overlapping each other. Of course, the symbols can be manually moved around after initial placement to get a more aesthetically pleasing result, but that can be a tedious and time-intensive task.

Thankfully, there is a way to automate at least part of this process by using MAPublisher and LabelPro.

Example map of Breda, The Netherlands

This example shows the heart of an old European city (Breda in The Netherlands to be exact). The map is composed of Dutch Top10NL topographic base data, a few labels were manually added for larger features (such as the park), and points imported from OpenStreetMap (OSM) and styled using a Map Theme. As you can see, there are a number of spots where the symbols are densely located and overlap each other.

The MAPublisher LabelPro add-on is capable of collision-avoidance to make sure overlaps don’t happen. But it only works when generating labels (text). Fortunately, the solution is to trick LabelPro into processing symbols too, so that they can benefit from better placement without overlaps.

Let’s start by adding a column to the attributes to the OSM points layer and filling it with a default value, a capital O.

Thankfully, there is a way to automate at least part of this process by using MAPublisher and LabelPro.

Editing the attribute schema

Next, determine how big the symbols are. On the artboard, use the Type tool to place a capital O and adjust its size so that it’s about the same size as one of the point symbols. In this case, a 14 pt Futura Medium, shown here in red, seems to cover it well (your results might be different).

Determine the approximate font size

Futura is a good font in this case because the O is a perfect circle. Once you’ve determined the approximate font size to use, delete the O text as it won’t be needed anymore.

Next, set up the LabelPro labelling rules. Since there is already a layer with the manually placed labels and the symbols shouldn’t interfere with them, the manually placed labels will be designated as an obstacle layer. The symbols layer will be labelled with the attribute created earlier and the style set to the font and size that was just determined.

Set obstacle layer

Setting the appropriate rules partly depends on personal preference but it’s important to specify that the placement prefers the center position (position 1 on the placement control). In other words: if there’s enough space for placement, the label doesn’t need to be moved or offset. Another important rule to configure is that font reduction should be turned off. All of the labels (eventually symbols) are going to be a fixed and similar size.

Set placement point rules
Set fitting point rules

Also, another good practice is to specify a suppression layer. Any labels that can’t be placed with the rules set will be placed on the suppression layer. After placement, you can determine if any labels need to be adjusted manually.

Let’s label! Go ahead and label with these settings and afterward hide the original symbols layer and the suppression layer. The map is filled with O’s where the original symbols are located.

O labels placed

At first glance, this does not seem very useful, but closer inspection shows that the labels have retained the attributes of the original OSM point symbols.

Attributes migrated to the O labels

This means that if they can be turned back into points, they will be able to be styled!

In order to turn them back into points, a text reference point needs to be created. In other words: a little dot on the text selection line, in the center of the O. This is a two-step process. First, select all the O’s on the artboard, open MAPublisher Text Utilities, and set the Action to Set text alignment and Alignment to Center. This action changes the alignment of the text without changing the actual position of the text (due to LabelPro labeling the text alignment is different based on where the label ended up in relation to the original point). This step takes care of the horizontal positioning.

Set text alignment in MAPublisher Text Utilities

The second step is to adjust vertical positioning. Vertical positioning is adjusted by moving all text up by a certain distance. Make sure all the O’s are selected, then use the (Adobe Illustrator) Move tool. In the Position group, set the Horizontal to 0 (no adjustment here since Text Utilities was used), set the Vertical to minus half the text size (font size in this example was 14 pt, so a vertical adjustment of -7 pt), and the Angle to 90 degrees.

Use the Move panel to fine tune position

For reference, this example is zoomed into a symbol that did not get displaced.

Next, these labels need to be turned into point symbols. There is a handy option in MAPublisher Text Utilities that can do that, but it places a point to the lower left of the text and the symbols need to use the center text reference point that was just created. Instead, with all of the O labels selected, open the MAP Attributes panel and export the attribute table to a text file. Make sure to specify the option Export All Attributes because there are two important hidden attributes needed to make this work: #MapX and #MapY, which are the coordinates of the text reference point.

Export attributes to a .txt file
(Click for larger version)
Export attributes to a .txt file

Using MAPublisher Import, add the attributes text file that was just created to the map and make sure to appropriately specify #MapX and #MapY in the X and Y coordinate columns.

Import .txt file as Delimited XY

Since there is no projection information stored in the text file, you’ll need to specify that the coordinates are in the same system as the MAP View it’s coming from and you’ll need to add it to that MAP View upon import.

On the map, there is now a new point layer and because they still have all of their original attributes, the layer can simply be added to the MAP Theme to have all the point symbols reapplied to them instantly. Let’s admire the results:

Symbols reapplied with MAP Themes

If needed, repeat the last few steps for the suppressed labels as well (to a different file and different layer of course) to see what still needs to be done manually.

Placing Text with an Offset Value Using MAP LabelPro

Having introduced some background information about text insertion point coordinate values in a previous post, it would be good to explore if this method works when trying to place text objects (annotations/labels) with a specific offset value. For example, if you have a point layer and there is an attribute for the offset value so that every object has a different offset value.

An Attribute table with the offset value for every object

Placing text objects with a specific offset is possible in MAP LabelPro. You can specify the Label Offset value in the MAP LabelPro dialog box. However, this setting will be applied to all text labels. In the example below (see screenshot), all the text will be placed 0.2 inches away from the object. However, that does not help when every point has different offset value like this example. Also, MAP LabelPro uses page units, not the world/map units. In this example, the offset distance was specified in the world/map unit (metres).

The offset option in The Point Rules dialog window from MAP LabelPro.

There are two methods you can accomplish to make the text placed with offset value. The first method is the same as the step shown above. You can adjust the text placement position by calculating the “ideal” coordinate for the text insertion point. From a MAP layer (point, line, or area), generate text with a MAPublisher feature (MAP LabelPro or Feature Label).  Then adjust the text position (maybe you will have to calculate a new position by adding/subtracting the offset values from the current point), then apply it to #MapX and #MapY. The second method is to adjust the position of the points first before labeling.

In the example below, a point layer with offset values in the attribute: x_Offset and y_Offset.

An example map with offset attributes (x_offset and y_offset)

Step 1: Calculate coordinates with offset.

  1. Create a copy of the layer just because the point value will be adjusted.
  2. Make the #MapX and #MapY visible (so that it’s easy to see when calculating).
  3. Create new columns (here we created “x+coord_withOffsetX” and “y+coord_withOffsetY”).
  4. Calculate the new coordinate of the points for X and Y (here we used Apply Expression) as shown below.

Step 1: Calculating the coordinates with offset

Step 2: Move the points to the calculated coordinates with the offset values.

Use the same method as the one introduced in the previous post. This method works for the Point layer as well. Open the Edit Schema window and apply “x_coord_withOffset” and “y_coord_withOffset” to #MapX and #MapY, respectively.

Step2: moving the points to the calculated coordinates with the offset values

Now, the points are moved to new position. The red point is the original and the blue points are the ones moved to the offset. Now you can label each points. After placing labels for the point layer (blue), you can make the point layer invisible.

The point position is adjusted by #MapX and #MapY

Now you can run the label engine (MAP LabelPro / Label Feature) for the new point layer with offset.

Placing Updated Labels at the Same Position as Existing Labels

After a text placement engine places labels (e.g. annotations or labels) some manual adjustment is usually required. The major reason for this task is to avoid text colliding with other objects and to improve map aesthetics and composition. Here is an example map with the position of labels manually placed and adjusted. What do you usually do when updating your map and you have to update those labels?

An example with labels. The goal is to place the updated labels at the exact same position.
An example with labels. The goal is to place the updated labels at the exact same position.

 

When running a text placement engine, it is common that the placed labels (in red) do not match with the position of the existing labels (in black). Have you ever thought that it would be useful if the updated labels can be positioned in the same place as existing labels? This is definitely possible using a combination of MAPublisher features.

A result after labels were placed with MAP LabelPro or Label Features.
A result after labels were placed with MAP LabelPro or Label Features.

 

Workflow involved to perform this task:

  • Obtain the position coordinate of existing text objects
    • Create new attributes to record #MapX and #MapY of each text object insertion point
    • Export the attribute table as a text file
  • Transfer the deteremined coordinte values of the text objects to the MAP layer (point layer in this example)
    • Join Tables using a common attribute between two tables
  • Place labels for the MAP layer
    • MAP LabelPro or Label Features
  • Adjust the position by those determined coordinate values for the text objects
    • Applying the recorded value to #MapX and #MapY

 

Step 1: Find the coordinates of the text insertion point from a text layer.

Every map object (point, line, area, image, and text) has a coordinate. MAPublisher calculates an insertion point when map objects are added to the artboard. For labels, a text insertion point can be seen as an anchor point or the square dot that is at the beginning of a text object. In this example, the text insertion point is placed at the lower-left corner of the word “Le Crocodile Restaurant” (highlighted in the red color in the screencapture below). The coordinate of this text insertion point is represented by the #MapX and #MapY attributes in the MAP Attribute panel. These two attributes are considered MAPublisher properties and are usually hidden. To display them, change their setting to “Visible” in the Edit Schema window as shown below.

Step 1: Finding the coordinate of the text insertion point from a "good existing text" layer
Step 1: Finding the coordinate of the text insertion point from a “good existing text” layer

 

Step 2: Record the coordinates of the text insertion point from a text layer.

Make the #MapX and #MapY coordinate values as useable attributes. Create new attributes called “TextCoord_X” and “TextCoord_Y”, then copy the values from #MapX and #MapY using Apply Expression.

Step 2: Recording the coordinate of the text insertion point from a "good existing text" layer
Step 2: Recording the coordinate of the text insertion point from a “good existing text” layer

 

Step 3: Prepare to copy coordinates of existing labels to the point layer.

The coordinate values of the text insertion coordinate of a text layer are now copied. The next step is to copy these coordinates from the text layer to the point layer. A simple method to do this is to use Join Tables based on a common attribute. In this example, the string field “RESTAURANT” is the common field in both text and point layers to make a connection. If you already have some other attributes (i.e. object ID or feature ID in both the text layer and the point layer, you should use that). Export the attributes as a text layer from the MAPublisher Attributes panel options menu.

Step 3: Preparing for bringing the coordinates of good, existing labels to the point layer
Step 3: Preparing for bringing the coordinates of good, existing labels to the point layer

 

Step 3: Preparing for bringing the coordinates of good, existing labels to the point layer (2)
Step 3: Preparing for bringing the coordinates of good, existing labels to the point layer (2)

 

Step 4: Join the Point layer to the exported attributes table.

Now, create a table join between the point layer table and the exported attribute table using the Join Table feature.

Step 4: Joining Tables with the exported Text layer and Point layer
Step 4: Joining Tables with the exported Text layer and Point layer

 

Below is the result from joining the tables together. There are also _MapX and _MapY columns because all visible attributes were exported. While the the step of copying attribute to TextCoord_X and TextCoord_Y was not totally be necessary, having columns named _MapX and _MapY could avoid some confusion because the point layer also has #MapX and #MapY columns. In this case, having attributes clearly indicating the values from the text insertion point is what is most important.

Step 4: Result from Join Tables
Step 4: Result from Join Tables

 

Step 5: Place labels with MAPublisher (inherit the attribute values from the point layer to text layer)

Now, place labels with MAPublisher using either Feature Label or MAP LabelPro. The important step here is to inherit the attributes from the point layer to the text layer (the target layer for generating new, updated labels).

When creating a new Text MAP layer, make sure that the “Base attribute schema on:” option is checked. This will allow the text layer to inherit the attributes from the point layer.

Step 5: creating a new MAP Text layer with the same attribute structure as the MAP Point Layer
Step 5: creating a new MAP Text layer with the same attribute structure as the MAP Point Layer

 

Below is the result of placing labels with MAP LabelPro (red labels). The result (in terms of the attribute structure) should be the same if labels are placed using Feature Labels. The position of new labels are not the same as the existing one. The label position can now be adjusted using the TextCoord_X and TextCoord_Y values.

Step 5: Labels placed with MAPublisher LabelPro or Label Features
Step 5: Labels placed with MAPublisher LabelPro or Label Features

 

Step 6:  Move the text objects by adjusting the #MapX and #MapY.

As illustrated above, the text position is obtained from the text insertion point. The next step is to apply the text insertion point coordinates to the #MapX and #MapY attributes of the point layer using an expression with the Apply Expression feature or use the “Derive value from expression” option in the Edit Schema dialog box.

Apply the TextCoord_X and TextCoord_Y values to #MapX and #MapY, respectively.

Step 6: Now moving the text objects using the #MapX and #MapY
Step 6: Now moving the text objects using the #MapX and #MapY

 

The labels are now positioned in the exact same location as the existing text layer.

Result: the new, updated labels are placed at the same position as the existing labels.
Result: the new, updated labels are placed in the same position as the existing labels.

New Image Data Type Available in MAPublisher

Do you have pictures and images you want to insert as an attribute in MAPublisher?

MAPublisher 9.4 introduces a new data type called Image. To work with the Image data type, you’ll have to take a look in the MAP Attributes panel. The Image data type can be used in the same way as the other data types in the MAP Attributes panel. Use the Edit Schema dialog box to edit or create the Image data type as an attribute.

For this example, we have a point layer called “Point of Interests”. Let’s create a new attribute column with Image data type called “Picture”.

Edit Schema with a new data type "Image Data Type

We added a fourth attribute to this point layer (existing attributes were PlaceName, Note, and PhoneNumber).

Let’s insert an image into the attribute cell. Click the “No image…” hyperlink in the attribute cell. It will open the Edit Picture dialog box. Click Let's insert an image file to an attribute cell to browse for an image to add to the attribute cell. Once the image is added, a preview of the image will be visible in the Edit Picture dialog box.

Inserting a photo as an attribute value

There are other controls in this dialog box.

Edit Image Attribute Window: button for Select an image Select and insert an image to the attribute cell. Use this button to replace the existing image to something else. You can insert jpg or png file.
Edit Image Attribute Window: button for Export image attribute as jpg or png Export image as jpg or png
Edit Image Attribute Window: button for removing image from the attribute cell Remove image from the attribute cell
Edit Image Attribute Window: button for navigation control (zoom to fit) Navigation control – zoom to fit
Edit Image Attribute Window: button for navigation control (zoom to actual size) Navigation control – zoom to actual size
Edit Image Attribute Window: button for navigation control (zoom in) Navigation control – zoom in
Edit Image Attribute Window: button for navigation control (zoom out) Navigation control – zoom out
Edit Image Attribute Window: Textbox to change the name of the imageChange the name of the image

 

After clicking OK, the image will be listed in the attribute cell. The cell shows the file name of the image (it will be the file name of the image by default but you can change the name of the image to anything else). Also, hovering the mouse pointer over the image name in the attribute cell will show a quick preview of it.

An image file is inserted to an attribute cell as image data

The Image attribute type also supports images exported from PDF Maps (in KML format) and images exported to Google (in KML format).

 

Data Collection: Getting Elevation Information with MAPublisher

Mountain Information with no Elevation Data

Have you ever had a point dataset where you wanted to obtain the elevation information for every point?

Instead of looking up another dataset to join elevation values or worse, looking them up by hand, MAPublisher 9.3 introduced a new feature to determine the elevation value for every point in a MAP Point layer using the “Add Calculate Data” tool. MAPublisher 9.3.: Add Calculated Data Tool Icon. This is based on using a GeoName account (more on this below).

To use it, simply have a MAP Point layer imported to the artboard and open the Add Calculate Data dialog box. In this example, we’re trying to gather elevation points for mountains in Japan. In the Calculation drop-down list, choose Elevation. You can choose the units for the elevation value from the drop-down list. For this example, we are choosing “meter”. If you do not have the GeoName account yet, click the hyperlink and obtain one (for free). After you’ve registered for a GeoName account, enter your username and click “OK”.

MAPublisher: Add Calculate Data Tool Window

A new column “Elev_metre” is populated as specified in the Add Calculated Data dialog window and every point has the elevation information in meters.

Your data now have the elevation information

This is a handy tool that may help when you have point data along hiking trails, ski courses, waypoints collected with PDF Maps (etc.) or when you need to find elevation data for any type of points.

If you use this feature, please send us your feedback and tell us how you like it!

Split Layer using Unique Values in Attribute in MAPublisher

MAPView with One MAP Layer

Do you have some data you would like to divide into multiple layers using unique values in an attribute? If so, you might want to try using the Split Layer feature in MAPublisher.

MP931: Split Layer

For example, we have a MAP Layer of the world (world_area layer). The world_area layer has many attributes and one of the attributes is about “Continent” information. With the “Continent” attribute, there are eight unique values: 1) Africa, 2) Antarctica, 3) Asia, 4) Australia, 5) Europe, 6) North America, 7) Oceania, and 8) South America.

To split this world_area layer into eight different layers based on unique values in the “Continent” attribute, we simply specify the Continent layer in the Split Layer dialog box.

Attribute data for the world data

Open the Split Layer dialog box. Choose the world_area source layer, then select the option “Split art to new layer(s) by unique attribute value:”. If you have a specific word you would like to include with the eight layers, enter the value for the “New layer prefix” option. Here, we entered the word “continent” as the prefix.

MP931: Split Layer

Now you have eight new MAP layers created based on the unique values of the “Continent” attribute. The attribute scheme, structure, and attribute values are inherited from the source layer to the split layers.

MAPView panel with the Split Layers