My Account     Contact Us     Cart

Cartographer Chronicles: Tom Patterson

The process of making maps can vary greatly depending on the cartographer and the purpose of the map. Tom Patterson, one of the cartographers behind the public domain data set Natural Earth and the popular website Shaded Relief, regards cartography as a creative process. He sees geospatial data as an artist would see paint on their palette. “They are raw materials from which the map is made,” says Patterson. “For me, the map making process starts with an online scavenger hunt for geospatial data, and ends with a visual depiction of the results of that scavenger hunt, a map.”

Patterson recently retired after 26 years with the U.S. National Park Service at the Harpers Ferry Center, located in West Virginia. Harpers Ferry Center is the media hub for the U.S. National Park Service, where most of the maps, exhibits, and publications for public consumption are produced.

Patterson is well-known for making maps with beautiful shaded relief effects, a technique that he has focused on for his entire career. It’s something he has a passion for and is a feature that he believes makes his maps unique. “When making a shaded relief, I go to great pains to portray the natural world in a beautiful and idealized manner, by combining shaded relief with land cover data, drop shadows, gradients and vignettes, with control and restraint,” says Patterson. “I ultimately want to create a shaded relief that readers will find attractive and which will blend harmoniously with the vector elements above.” Patterson prefers light, luminous colours for depicting terrain, and also tell a story. “A map is more than just a combination of points, lines, polygons, type and pixels. To me, a really good map is one that becomes much more than the sum of these parts,” he says. “Maps are an important form of communication, and they should effectively share the ideas of the cartographer to the map reader.”

When making graphically creative maps, you want to use tools that provide you with the most control. With MAPublisher, you can easily access and manipulate geospatial data using Adobe software. “MAPublisher and Geographic Imager bridge the gulf between graphical and GIS worlds.”

Patterson was an early-adopter of MAPublisher, a plug-in for Adobe Illustrator after learning about it in 1996 at the annual North American Cartographic Information Society (NACIS) conference. If you’ve ever used the Natural Earth data, you might be interested to know that most of the vector elements were created with MAPublisher and Adobe Illustrator.

He was also integral in the development of Geographic Imager when during a presentation about manipulating Digital Raster Elevation Model (DEM) data he commented that having a MAPublisher-like software for Adobe Photoshop would be useful. “My suggestion was heard by the President of Avenza, Ted Florence, who was in the audience. He put me in touch with the software development team at Avenza to brainstorm ideas about a GIS plug-in for Adobe Photoshop. Geographic Imager was the eventual result of our discussions.”

Along with his many contributions to the cartographic community, Patterson has held some important positions as the former president and current Executive Director of NACIS. Patterson has created accessible, open source data for global use (Natural Earth), he recently contributed to a new map projection that is taking the cartography and GIS world by storm; Equal Earth. “This equal-area pseudo-cylindrical projection has gained traction rapidly—it seems that cartographers and map users alike have had an unfilled need for world maps depicting countries at true size and presented in a pleasing manner,” he quips.

As an accomplished and respected veteran of the field, we asked that what advice Patterson would give to new cartographers, finding their way? “Seek out advice,” he states. “Map design and production is mostly a solitary task, and any map you create will seem easy-to-understand and logical to you since you are the one who made it. But, your readers may not see it that way,” says Patterson. “The easiest way to avoid these potential ‘failures to communicate’ is by showing drafts of your maps to people that are not family and close friends.”

Another tip that Patterson has for fledgeling cartographers, is to give readers a reason to slow down and read your map. “The trick in today’s media-saturated environment is to design a map that will catch your reader’s eye, ignite their curiosity, and draw them in. Give the most emphasis to the information you want them to remember long after they put down your map.”

Cartographer Chronicles: Thorfinn Tait

Cartographer Chronicles Thorfinn Tait

A teacher by day and a cartographer by night, Thorfinn Tait (a native of Scotland) has been teaching high school in Japan for almost 20 years while making maps of fantasy lands in his spare time.

Mapping is a hobby for Tait, and his deep love of atlases, along with fantasy role-playing games (known as RPGs), helped drive him towards creating his own maps of fantasy worlds. He started in 2005, making maps in Adobe Illustrator. His goal was to create an atlas of a fantasy world, that included the same variety of maps that you’d find in any traditional world atlas — topographical, political, thematic — along with all the tables of data typically found in an atlas. He chose to map the world of Mystara, a popular Dungeons & Dragons (D&D) campaign setting from the 80s and 90s.

Tait set out to compile all of the original maps of Mystara (more than 250 of them) into a cohesive whole. “One of my biggest struggles was trying to work out what projection Mystara’s maps used. But there was a fundamental disconnect for me in that Illustrator alone did not have the functions I needed,” says Tait. “For example, to change the projection of a map, I tried to use it in tandem with other GIS software, but it was very troublesome having to constantly import and export elements between programs.”

Map of Caldwen

©2019 Bruce A. Heard. World of Calidar™ Fantasy Setting.

While working on the Atlas of Mystara project, an original Mystara author made a return to the industry, and Tait volunteered to remake his maps in Illustrator. The year after, that same author commissioned Tait to map a new RPG world, the World of Calidar. Determined to avoid the same problems he’d encountered with Mystara, he began establishing dimensions of the new world and creating custom projections based on them. But, working between Adobe Illustrator, Adobe Photoshop and GIS software was still very complicated.

World of Calidar

©2018 Bruce A. Heard. World of Calidar™ Fantasy Setting.

I managed to complete the first assignment with just those tools, but as soon as I got my first commission, I invested it right back into my maps by purchasing MAPublisher and Geographic Imager.” With MAPublisher, a plug-in for Adobe Illustrator and Geographic Imager, a plug-in for Adobe Photoshop, Tait could work natively in both Illustrator and Photoshop.

“My favourite aspect of MAPublisher is without a doubt the custom coordinate system. It allows me to create resources for fantasy worlds just like they already exist for the real world, and then repurpose them across all of my maps,” says Tait. He also uses MAP Attributes and adds data to the world’s geography. “For example, it’s easy for me to track things like road and river lengths, land areas, dimensions of coastlines and political borders, and so on — MAPublisher calculates all of these things for me automatically.”

MAPublisher has allowed Tait to take his previous work and convert it to the newly established custom coordinate systems, without losing any of the GIS attributes he’d created over previous years. Tait also uses Geographic Imager to create Digital Elevation Models (DEMs) for the World of Calidar. DEMs can help bring maps to life, adding an intricate level of detail and depth.

World of Calidar

©2014 Bruce A. Heard. World of Calidar™ Fantasy Setting.

Tait’s tagline for his freelance business is “Mapping fantastic worlds with real-world accuracy”. “I couldn’t do this without MAPublisher and Geographic Imager,” he says. “The software allows me to create and work with data for a fantasy world just like other people map the real world, the only difference is that I am creating all the data myself!”

“MAPublisher has truly expanded my horizons as a cartographer and has also changed the course of my projects. Without it, my current work would simply not be practical — in fact, probably not possible at all.”

Tait is currently working on georeferencing existing Mystara maps and tagging elements with their original sources. Check out more of his mapping projects on his website!

Carto-Jargon 201: Cartography Terms Defined

In a previous blog post, we defined a few common cartography terms that you might be likely to encounter while using MAPublisher and Geographic Imager; however, that was just the tip of the iceberg when it comes to cartography and GIS jargon. Here, in no particular order, are several additional terms used by cartographers, GIS professionals and people who work with spatial imagery.

Topology

Topology is a key principle in GIS for data management and integrity, ensuring the data quality of spatial relationships is maintained. In general, a topological data model defines how spatial objects (point, line, and area features) are represented, and defines and enforces data integrity rules (for example, there should be no gaps between polygons).

Azimuth

The horizontal angle, measured in degrees, between a baseline drawn from a center point and another line drawn from the same point. Normally, the baseline points true north and the angle is measured clockwise from the baseline.

Neatline

All 2-dimensionally rendered maps have to compromise somewhat on accuracy, even if only just a little by moving or scaling features to improve readability. However, the neatline is never adjusted, making it the most accurate element on a map.

The neatline is the border defining the extent of geographic data on a map and separating the body of the map from the map margin. It demarcates map units such as meridians and parallels, and depending on the map projection and the units selected, the neatline may not have 90-degree corners.  

Geodatabase

A Geodatabase, a database or file structure used primarily to store, query, and manipulate spatial data, stores geometry, a spatial reference system, attributes, and behavioral rules for data. An advantage of geodatabases over shapefiles is that various types of geographic datasets can be collected within a geodatabase, including feature classes, attribute tables, raster datasets, network datasets, topologies, and many others.

Geoprocessing

Geoprocessing is an operation used to manipulate a GIS data resulting in a new set of data. Common geoprocessing operations include geographic feature overlay, feature selection and analysis, topology processing, raster processing, and data conversion. Geoprocessing allows for the definition, management, and analysis of information used to make decisions based on patterns within the GIS data.

Shapefile

An Esri Shapefile is a vector data storage format for storing the location, shape, and attributes of geographic features. A shapefile is stored as a set of related files and contains one feature class. An alternative to using shapefiles to store GIS data is a geodatabase, however, shapefiles have some advantages in terms of relative simplicity and wide-ranging compatibility with many applications. Related files contain additional information that is read by the shapefile when opening/importing in GIS applications, as long as these related files have the same name and reside in the same directory – the *.dbf (database) file contains attribute information, and the *.prj (projection) file contains coordinate system information. Shapefiles also have limitations such as the inability to support raster files, and large file sizes.

Buffer

A zone around a map feature measured in units of distance or time is called a buffer. Buffers are useful for proximity analysis.

Geodesy

Geodesy is the science concerned with the measurement and mathematical description of the size and shape of the earth and its gravitational fields. Geodesy includes the large-scale, extended surveys for determining positions and elevations of points, in which the size and shape of the earth must be taken into account to achieve accuracy.

Vector vs Raster

The terms vector and raster are encountered often in cartography though they are not often defined. In a nutshell,

Raster data is made up of pixels (sometimes referred to as grid cells). Each pixel can have a range of values used to represent data points. For example, in a satellite image, every pixel has a red, green and blue value.  

Vector data is not made up of a grid of pixels. Instead, vector graphics are comprised of vertices and paths where the vertices are x,y coordinates. In GIS systems, they are a latitude and longitude with a spatial reference frame.

Mosaic

A Mosaic is a single raster dataset composed of two or more merged raster datasets—for example, one image can be created by assembling multiple aerial photographs whose edges usually have been torn or cut selectively and matched to the imagery on adjoining images to form a continuous representation of a portion of the Earth’s surface.

Orthorectification

The process of correcting the geometry of an image so that it appears as though each pixel were acquired from directly overhead. Orthorectification is used to correct terrain distortion in aerial or satellite imagery.

Sources

http://wiki.gis.com/wiki/index.php/GIS_Glossary/
https://legacy.lib.utexas.edu/maps/glossary.html
https://gisgeography.com/spatial-data-types-vector-raster/

Cartographer Chronicles: Alison DeGraff Ollivierre

Alison DeGraff Ollivierre caught the geo/carto-bug from an introductory geography course in her first semester at Middlebury College, quickly realizing that the discipline was the perfect combination of her diverse interests in global affairs, conservation, history, and sociology. Now a cartographer at National Geographic Maps, Ollivierre works on the Trails Illustrated topographic outdoor recreation map products from an office in Colorado, making it easy for her to always be planning her next hike or trip to a National Park.

Ollivierre began her professional career as a Geography Intern at National Geographic in 2011, working with NatGeo Live and the Giant Traveling Maps. During her internship, she had the opportunity to make maps for a few NatGeo Explorer lectures and Giant Traveling Map fact cards, but what really stuck with her was how the incredible breadth of geography was used every day at NatGeo (and meeting Sylvia Earle—she thought that was pretty cool!). Since then she has gone on to win multiple awards for her cartography and was recently recognized by xyHt Magazine as a 40 Under 40 Remarkable Geospatial Professional for 2018.

 

As a certified GIS Professional, with a master’s degree in Geoinformatics from the University of the West Indies, Ollivierre knows geospatial data and how to handle it but also understands that—while the data is important—there is more that goes into making a good map than just the data. ‘I believe strongly in the importance of great design.’ explains Ollivierre. ‘It has the power to make geospatial data more engaging, interesting, and accessible to its audience.’

Ollivierre started using MAPublisher—a cartography plug-in for Adobe Illustrator—in 2016 when she returned to work at NatGeo after facilitating a participatory mapping project in the Eastern Caribbean, working as a cartographer and GIS specialist in Maine, and conducting freelance cartographic work for organizations across the globe. ‘I had played briefly around with a trial version of MAPublisher before that and heard a lot of great things about the software, so I was excited to learn how to use it at NatGeo Maps.’ says Ollivierre. ‘We complete 99% of our daily tasks in Illustrator + MAPublisher so its power is clearly evident in our workflow.’

Making quality maps that bring to life complex geospatial data requires a mix of science, art, and specialized tools to get it right. ‘I love the process of turning raw data into a map that clearly (and attractively!) gets its point across.’ says Ollivierre. ‘For me, MAPublisher is the obvious choice to bridge that gap between GIS and cartography.’

Find Alison on LinkedIn

Carto-Jargon 101: Cartography Terms Defined

The field of cartography is filled with jargon and terminology that can pose a challenge for newcomers learning to use mapping software such as MAPublisher to make beautiful maps, and those who don’t have a formal background in cartography. It also doesn’t make it easier when different software packages have their own variations on certain terms. To help the cause, we have compiled a short list of common cartography terms or “carto-jargon” that you may encounter while using MAPublisher or Geographic Imager.

Basemap

A basemap is a background image which can include aerial imagery, topography, terrain and streets and other fundamental layers and is used as a starting point to create a new map. The basemap is georeferenced and is usually the most accurate source of spatial information within the data system that makes up the finished map. Additional layers of data such as labels, symbols and paths are then added to the basemap to create the final product.  

Feature

Any real-world object that is represented on a map is a feature. Features can encompass large areas of a map, such as bodies of water and mountain ranges, or they can be discreet objects like parking areas, public washrooms or fire hydrants.

Attribute

Attribute data is information about spatial features and is stored in tables. It is also the information that specifies the appearance and labeling of features on a map. For example, the graphic attributes of a river might include the thickness of the line, line length, color, and the name used for labeling.

Control Point

A control point is a location on the map with known pixel (x,y) coordinates. Control points are used in georeferencing to allow for extrapolation of the relative location of other points whose exact coordinates may not be known.

Coordinate System

A coordinate system is a reference system used to represent the locations of geographic features on a map. It provides the basis for identifying locations on the earth’s surface. There are thousands of different coordinate systems, most of which are limited in use to highly specialized purposes.

Projection

The earth is not flat and so imagining that it is for the purpose of putting it on a 2-dimensional map results in some distortion. A projection is a method by which the curved surface of the earth is portrayed on a flat surface and is based on a mathematical transformation of the earth’s lines of longitude and latitude onto a plane. There are many different projections, each of which distorts distance, area, shape, and direction is some way, therefore no projection can result in a perfectly accurate flat map. Check out the Avenza Projections Guide for a more detailed information.

Georeferencing

Georeferencing involves aligning geographic data to a known coordinate system so it can be viewed, queried, and analyzed relative to other geographic data on the same map. Georeferencing may involve shifting, rotating, scaling, skewing, and in some cases warping, rubber sheeting, or orthorectifying the data to improve accuracy.

Graticules and grids

Graticules are the network of longitude and latitude lines on a map or chart that relates points on a map to their true locations on the earth. You can think of this a grid system – in fact, the terms are sometimes used interchangeably, but there is a subtle difference. Graticules are derived from 3-dimensional ellipsoidal shape of the earth and are formed by the the lines of latitude (parallel lines circling the earth), and lines of longitude (non-parallel lines converging at the earth’s poles). A grid system is comprised of a set of parallel and perpendicular lines that are superimposed on a flat projection of the earth, creating an x,y coordinate system. An example of a grid system is the Universal Transverse Mercator (UTM) system.

Themes

In MAPublisher, MAP Themes are a collection of thematic cartography tools designed to automate how styles and symbols are applied, charts are produced, and data is plotted. There are three themes which you can be customized to suit your needs: Stylesheet, Chart, and Dot Density. MAP Themes offer a lot of flexibility as they can be edited, applied, duplicated, automated, exported, and cleared without affecting the spatial referencing of map features.

This is just a small sampling of the more robust glossary of terms available in the our MAPublisher and Geographic Imager documentation packages.

Sources
https://avenza.com/help/mapublisher/10.1/index.html?whats_new_in_mapublisher.htm
https://avenza.com/help/geographic-imager/5.3/index.html?glossary.htm
https://www.gislounge.com/gis-dictionary/
http://geography.name/gridgraticule/

How to Create and Style Highway Shields with MAPublisher LabelPro

MAPublisher LabelPro intelligently labels your map layers using custom rules and styles. One of the popular uses of this feature is to create highway shields. The result is a cleaner map and is widely used on road maps around the world. While MAPublisher has many default options for highway shields, it is possible to create custom shields to improve your map as well. This blog will outline the steps to create and customize highway shields for your map.

Step One

Import your data into MAPublisher, ensuring your road line data has an attribute field for highway route numbers. Highway shields can work with any data type, however, traditional highway shields are created with a highway number with no additional characters. Using the integer data type enforces this and is recommended for highway shields.

 

Step Two

On the MAPublisher toolbar, in the Labels subsection, click the MAP LabelPro button.

 

Step Three

On the MAP LabelPro dialog box, click the Setup Layers button. This allows you to select which layers are going to be labeled or used as obstacles. This means you can label multiple features at the same time as the highway shields. Click the checkbox next to your roads layer and click OK.

 

Step Four

Optionally, you may want to only create highway shields on some of the roads within your road layer. For example, if your roads layer also contains roads that are not highways, you don’t want them labelled with a highway shield. The solution is to create a Label Filter. To do this, first create a new filter by clicking Add label filter button at the bottom of the dialog box. Next, in the Label Filter section, select Limit by expression and click the Edit icon. This opens the Expression Builder dialog box. In this example, the expression entered selects only roads that have a jurisdiction designated as “Federal” or “Province”. Only these roads will be labelled with a highway shield.

 

Step Five

If you didn’t create a label filter, click the layer in the Source list you would like to label. On the right side, ensure that the “Is labeled” checkbox is checked. Immediately below, in the Label Source drop-down, select the field that contains the highway route numbers.

 

Step Six

Select or create a rule from the Rules drop-down. The pre-defined Highways and Interstate rules that are included with MAPublisher follow conventional mapping patterns, but if you want to customize the setup of your shields, click the Edit button. Once you are satisfied with your rules, click OK to return to the MAP LabelPro dialog box.

 

Step Seven

To customize the appearance of the shields, click the Edit button beside the Style drop-down. To add highway shields, click the Label with symbol check box to enable its settings. The Symbol file is the shield library, where you can pick between Canadian, US State and generic shields. The Symbol drop-down is where you can pick the shield from the shield library specified. All shields will have the same symbol, if you want multiple shield shapes on your map, you’ll have to create label filters as outlined previously in step four. The Font family, Font Style, Size, Colour and Label case affect the appearance of the text within the shield. Click OK when finished setting the style.

 

Step Eight

Back in the MAP LabelPro main dialog box, click the “Output suppressed labels to” check box. This moves all excess labels such as duplicate shields or shields that clash with other features on your map to a Suppressed layer. You can view features on the Suppressed layer after to see which labels were not included and you can decide to keep or delete them.

 

Step Nine

Click Label to begin the labeling process.

 

Step Ten

When all of your shields are generated, you can do some additional customization. In the Illustrator Layers panel, select all of your shields. From here, any changes to the colour, stroke colour and other settings you would use on objects, will be applied to your shields. With this functionality, you can create the exact shields you want for your map.

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.

Sorting MAPublisher Layers with FME Auto

In this blog post we’ll look at how you can control the order of layers in MAPublisher when using FME Auto.

FME Auto to MAPublisher

FME currently doesn’t provide a way to explicitly define the output order of Feature Types in a workspace. In the Navigator you can reorder Readers and Writers to control the order in which they are run, but unfortunately you cannot do the same with the Feature Types they read and write respectively.

By default when you write layers to MAPublisher from FME using FME Auto, the layers are arranged first by geometry (text first, then Points, Lines, Polygons and lastly Images), then alphabetically by layer name. This behaviour can be changed by unchecking the FME Auto Parameter “Sort Layers by Geometry”. Once this has been turned off, MAPublisher will display layers in the order they are received from FME. Using this behaviour, some FME transformers and a Feature Type fanout (or new to 2015.1, specifying the Feature Type name) we can control the order of the layers in MAPublisher for optimal cartographic output.

The first thing we want to do is to add some input Feature Types.

Natural Earth Shapefiles
(Click for larger version)

We will then create a template AttributeCreator Transformer to give each layer two attributes: MP_LayerName and MP_Order. MP_LayerName will define the name of the layer in MAPublisher and MP_Order will determine the order the layer is passed to MAPublisher; hence the order in which it is displayed.

AttributeCreator Transformer to add MAPublisher Specific attributes

Each Feature Type will be connected to a copy of the AttributeCreator Transformer and the values will be populated for that layer. The layer with an order of 1 will be on top with larger numbers descending below.

Layer Name Order
Border 1
Graticules 2
Pacific Groupings 3
Tiny Countries 4
Coastline 5
Lakes 6
Countries 7
Rivers 8
Glaciated Areas 9
Land 10
Ocean 11
AttributeCreator Transformers connected to input Feature types
(Click for larger version)

Once this is done, all the inputs can be connected to a Sorter Transformer. The Sorter will be set to numeric and ascending.

Sorter Transformer
(Click for larger version)

Finally, the MAPublisher writer is added. The Sort by Geometry parameter needs to be set to No and the Feature Type name should be set by the MP_LayerName attribute we created earlier. This replaces Feature Type fanouts and has slightly new behaviour at FME 2015.1. It is explained more fully (here).

MAPublisher writer added with Sort by Geometry Set to No
(Click for larger version)
Output Feature Types are defined by the LayerName attribute

Once we run the workspace, we’ll see the layers in the Adobe Illustrator Layers panel in the exact order we specified.

Layers in Adobe Illustrator are in the correct order
The final map after some cartographic styling
(Click for larger version)

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.

Updating Multiple MAPublisher Templates with FME Auto

Drawing inspiration from this Safe software blog post we have developed an FME workflow that allows the user to update multiple MAPublisher templates with additional layers using two workspaces and a workspacerunner transformer.

The folder structure for the project follows one possible standard arrangement. A data folder contains the shapefile that is being added to the existing .ai files. An output folder gathers the intermediate .ffs files generated by FME that pass the data to MAPublisher. The templates folder contains the .ai files that will have the layer added to them. Finally the workspaces folder contains the two workspaces required for the transformation.

Folder Structure
Data Files
Output Files
Templates Files
Workspaces Files

The runner workspace uses a path reader to get the filenames and paths of the .ai files. A filter is applied to make sure only files with the extension “.ai” are read. After the path reader an attribute creator adds the path for the output .ffs files as an attribute. This is dynamically calculated based on the filenames of the input .ai files.

Runner Workspace
(Click for larger version)
Attribute Creator
(Click for larger version)

The full paths to the template files and the paths to the output ffs files are passed as published parameters to the worker workspace. Two published parameters have been created in the worker workspace and linked to parameters in the MAPublisher writer. This allows the writer to take the values passed from the runner workspace. The worker workspace is run once for every file that is in the folder of ai files, and these published parameters update dynamically for each one.

Published Parameters in the Worker Workspace
Workspacerunner Parameters
(Click for larger version)

The worker workspace has a shapefile reader that reads in the layer that is going to be added to each template. At this point multiple readers or other transformers could be added to increase the complexity of the transformation.

Worker Workspace
(Click for larger version)

When the runner workspace is launched each template is opened up, the shapefile is read and added to a new MAPView in the MAPublisher document. Equally it could be added to an existing MAPView with a matching coordinate system. These documents can be left open as shown here, or with the addition of another published parameter new output .ai files could also be specified.

Output AI Files
(Click for larger version)

Useful Resources

Example files (Adobe Illustrator CC2104 and FME Desktop 2015)

News Archive