We’re excited to announce that we’ve completed the release of Avenza Maps 3.3 for iOS and Android. We addressed some early user feedback and made a few point releases to resolve those issues (3.3.1 for Android and 3.3.2 for iOS). We’re also working on another minor update that addresses some additional user feedback.
Avenza Maps 3.3
This update contains new features and performance improvements as well as fixes for reported bugs. Some highlights are mentioned below, for the full release notes see below.
Redesigned Measure Tool. This tool has been completely redesigned and renamed — now known as the Draw and Measure tool. It features an improved interface which lets you draw shapes and measure more easily. While in a draw or measure mode, you can now quickly tap anywhere to enter a segment for a line or area. In addition, there are two precise input modes to enter segments: Point By Point and Course and Distance. Long press anywhere on the map to enter precise input mode. For Point By Point, simply enter the coordinates (lat/long, easting/northing or MGRS/USNG) to add a segment at an exact location. The Course and Distance mode allows you to enter the heading (angle) and distance from an initial location.
You can also now draw circles. Using only two points — an initial center point and a second point at any distance away — which means you can now draw circles that can act like buffers. It even works with the Point By Point and Course and Distance modes to enter specific distances or coordinates. Best of all, shapes and areas can now be saved as a map feature to your map. They can be exported as KML, CSV or GPX or even SHP (if you have Avenza Maps Pro). New style settings are available to adjust line thickness, stroke and fill colors, and opacity.
Redesigned Measure Tool (now known as “Draw and Measure”)
New advanced drawing capabilities, including tap anywhere to draw a segment and tap and hold to access “point by point” and “course and distance” modes
Draw, edit, save, export and import areas. Draw areas including circles using only two points.
Reorganized Settings including new settings to change location dot color and line and area colors including opacity
Record GPS Tracks will continue to run even when the map is closed
Map Store improvements including ability to preview map extent
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.
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.
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).
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.
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.
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.
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.
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.
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.
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.
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.
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:
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.
One of the great features of Avenza Maps is being able to navigate offline using your own maps or maps from the Map Store. By tapping the GPS icon twice (once to locate yourself and then again to enable the compass), the map will rotate and align with your compass. Your current location is represented by a blue dot and the little arrow points in the direction you are facing. This feature allows you to navigate easily, however it can be problematic when your devices’ compass isn’t calibrated. If you notice that your blue dot’s arrow is not pointing in the right direction, or isn’t functioning as you’d expect, try these steps to calibrate your device’s compass!
To calibrate your compass on Android, go to your Google Maps app. If your blue dot’s beam (the blue shading coming out of it) is pointing in a different direction to where you are facing or is very wide, your compass will need to be calibrated. To calibrate, tap the blue dot and select “calibrate blue dot compass”. From here, you will be instructed to move and tilt your device in a figure 8 pattern, shown in the following diagram.
Your compass accuracy will improve as you continue to do this. When you are happy with your compass accuracy, tap Done. The beam from the blue dot on the display will now be narrower and point in the right direction. If at any point the accuracy lowers again, this process can be repeated. If this does not solve your issues, you can select “report blue dot issues” by pressing the blue dot again. For more information, click here.
On Apple devices, use the Compass app to calibrate your compass. This app comes pre-installed on iPhone devices. If for any reason it has been deleted, it can be found in the App Store if you search for “Compass”.
When the calibration screen appears after you open the Compass app, you’ll need to perform a few easy steps to calibrate the compass. Follow the on screen instructions and tilt your phone until the ball moves all the way around the circle. If you are using an earlier iOS, you will be prompted to move your phone in a figure 8 motion.
Once this process has been completed, the default compass screen will appear – your compass is calibrated and ready to be used! If the default compass screen appears as soon as the app is opened, your compass is already calibrated. If you see a different page appear on screen, the Compass app also doubles as a leveler; swipe left you will return to the compass screen.
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.
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.
On the MAPublisher toolbar, in the Labels subsection, click the MAP LabelPro button.
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.
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.
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.
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.
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.
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.
Click Label to begin the labeling process.
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.
Using a Web Map Service (WMS) is a great way to easily get up-to-date imagery for your project. An issue you may run into, however, is that a server may not allow you to download images over a certain size (in pixels). The image resolution provided on most servers is usually high enough for most projects but there may be some instances where a higher resolution is needed (e.g. a poster-sized map or a web map that covers a large area).
One possible workaround for this issue is to get several small-area, high-resolution images from a WMS and then mosaic them together to make one large-area, high-resolution image. Here, we will use the City of Toronto Web Map Service to:
Get an image of downtown Toronto
Tile the image to split it into four smaller images
Use the extents of the four tiled images to get four high-resolution images
Mosaic the images to one large high-resolution image
Download an Image from the Web Map Service
First we will get an image of downtown Toronto from the City of Toronto WMS. Click the Advanced Import button on the Geographic Imager panel. Select Web Map Service from the Format drop-down and click Browse. Click Load services from Avenza and select City of Toronto WMS from the list.
Select City of Toronto Imagery from the list of layers. Click Select Area then drag a box to zoom in on an area of downtown. Click OK to return to the previous window. There is no need to change the image size because we will use this image to get the extents of a higher resolution image. Leave the other options as default and click OK to load the image, and click OK again on the Advanced Import dialog box. The selected image will now open in Adobe Photoshop.
Tile the Image
Next, let’s tile the image to split it into four separate images. Open the Tile dialog box from the Geographic Imager panel. Choose By Number of Tiles as the Tiling Schema and change Horizontal and Vertical to 2. Change the Horizontal and Vertical Overlap to 3 percent. It’s important to have overlap between the images so they will mosaic properly when the data is transformed.
Click the Keep Images Open check box to enable it. Choose a name and location to save the tiles. You can save them to a temporary location because they will not be part of the final product. The four image tiles will open in separate tabs.
Estimate a Web Map Service’s Maximum Image Size
Open the City of Toronto Imagery WMS again and select an area. In this service, as with many other services, the maximum resolution is not provided. We can, however, use trial and error to find the largest image that the service will allow us to download. A WMS has a maximum allowed width and height set for an image request. The maximum width is usually the same as the maximum height.
Set the resolution of the image by adjusting the width of the image in pixels under Output Options. First, try setting Image Size to a pixel width of 5000. Height will update automatically based on the image’s dimensions. Click OK and you will see an error that says “Parameter ‘width’ contains unacceptable value” (or height if the images higher than it is wide). OK the error to close it.
To estimate the maximum width and height allowed by a web service, you can adjust the image size to see when the server returns an error. The maximum width and height for the City of Toronto WMS is about 4000 pixels.
Downloading and Mosaicking Large Images
Next we will use the geographic extents of the four tiled images to download four higher resolution images with matching extents then mosaic the images together. Import an image again from the City of Toronto WMS using Advanced Import. Select an area, click Select Area by Another Document’s Extents and choose the first tiled image from the dropdown menu. The Select Area dialog will display an area matching that image’s area. Click OK to return to the previous screen.
Enter 3000 as the Image Size. Click OK to add the image to the Advanced Import dialog box. Repeat the above steps for each of the remaining three tiled images.
Creating a mosaic of four images (two by two) makes a single image just under 6000 pixels wide because of the overlap between the tiles (the height will vary depending on the area you selected). This is larger than the maximum size allowed by the WMS. Check the box Mosaic All Files to the Destination Document and select one of the images currently loaded in the dialog window from the drop-down menu. Leave the other options unchecked and select Normal as the Layer Blending Mode. This will merge the four images into a single document.
Avoid Downloading Images Greater than the Maximum Image Resolution
One further consideration when getting imagery from a service is to avoid requesting an image that is higher resolution than the full resolution of the image on the service. In this case, the number of pixels in the image and, therefore, the image size will increase without any increase in the actual resolution of the image.
To see an example of this, get an image from a WMS by zooming in on a small area and downloading images of varying resolution. The pictures below show two images of the same area side by side at different resolutions. The image on the left is 1024 by 870 pixels and the one on the right is 2500 by 2124 pixels but there is no noticeable difference between them. This is because the image exceeds the resolution of the image on the server so the WMS resamples the image to a higher resolution, creating duplicate pixels.
With the latest release of Geographic Imager 5.2, it’s now possible to easily import images directly from an ArcGIS Online account or an ArcGIS web service. This will allow you to use shared data within your ArcGIS Online organizational account and connect to publicly available map servers from various online sources.
ArcGIS Online is a collaborative web GIS that allows you to store and share GIS data using Esri’s secure cloud. Before, you may have had to download raster layers to your local machine and then import them into Adobe Photoshop using Geographic Imager. Now, Geographic Imager has a much-improved workflow to get ArcGIS Online image layers into Adobe Photoshop with full georeferencing.
Currently, the types of datasets allowed are Map Image Layers and Tile Layers. To load a layer, open Advanced Import and select ArcGIS Online from the Format drop-down list. Enter the credentials for your ArcGIS Online account and select an image layer from your user portal.
Images can be resized and transformed on import. To extract a specific area from the image, click Select Area. The interface is the same as the one used for WMS Import.
In addition to using your own organization’s data, you can connect to publicly available data from a wide variety of organizations by connecting to an ArcGIS Web Service. To connect to a web service, use Advanced Import and select ArcGIS Web Service from the Format drop-down menu. Click Browse and enter the URL for the service. This is a great option when searching for data from open data portals created by government agencies.
Avenza Maps is capable of importing and displaying georeferenced maps in several different formats. The app processes a map by rasterizing and tiling it on import. The speed and result of processing will vary depending on the type of file used and the size and dimensions. We’ll discuss the types of files allowed and the advantages of each.
Usually larger files take longer to process than smaller ones with some exceptions. An image may have a very high resolution but a small disk size due to image compression. It is recommended that images be less than 100 megapixels for upload to the app. A geospatial PDF file with many vector features may also take a long time to process. In this case, you should convert the file to an image to avoid having to rasterize vector data in the app.
Maps can be loaded into the app faster by processing them before import. Maps can also be preprocessed by uploading them to the Avenza Maps Store or using the Export to Avenza Maps tool in Geographic Imager or MAPublisher.
Comparison of Allowed File Types
A GeoTIFF is a TIFF file (Tagged Image File Format) with spatial information embedded in the file. This format is typically the preferred format for uploading directly to Avenza Maps without preprocessing. Since this is an image format, the app doesn’t need to rasterize the file on import meaning processing times will generally be faster compared to PDF’s, and it will maintain the native resolution.
It is also possible to import a normal TIFF file by zipping it with a TIFF World File (TFW) and either a WKT or PRJ file which contains projection information. It is best not to do this for the sake of simplicity. Usually, any GIS software that can produce a world file will also be able to save to GeoTIFF.
A Geospatial PDF stores spatial data in either raster or vector format as well as associated attributes and layer information. Files should comply with the Adobe Acrobat PDF 1.7 specification which has been standard since 2006.
Avenza Maps rasterizes geospatial PDF files on import which discards layer and attribute information. PDF files typically take longer to process than image files. There is also a chance that the file may process incorrectly (e.g. discarding labels).
Despite this, there are some instances when it may be preferable to use a geospatial PDF file. For example, the map may already be in this format and isn’t worthwhile to convert to another format. Geospatial PDF files tend to be smaller than image files so they would be a good solution if device storage space or download speed is an issue. Also, occasionally converting from PDF to TIFF degrades the image quality and may make maps illegible.
To ensure a geospatial PDF file has a good balance between size and quality, open the file in Adobe Acrobat and go to Advanced > PDF Optimizer. This is especially helpful if the map contains large raster images.
JPEG is an image format like TIFF but it does not have the ability to store spatial information. To load a JPEG into Avenza Maps, it must be zipped with a JPEG World File (JGW) and either WKT or PRJ file. JPEG files are compressed so this may be an option to consider if file size is a consideration, however, a better alternative would be to compress a GeoTIFF file.
Processing Maps with MAPublisher, Geographic Imager, and the Map Store
It is best to process maps before loading them into the app because desktop computers are more powerful than mobile devices. It also avoids having to process the file each time the map is loaded onto a device. Geographic Imager and MAPublisher each have a utility to export to an Avenza Maps package with the capability to upload directly to the Avenza Map Store if you have a vendor account.
Running these utilities produces a folder that contains a ZIP file with a thumbnail to show a preview of the map, a reference file, and a folder called tiles that contains a tiled version of the map in PNG format. This ZIP file can be imported into the app in the same way as other files.
In the latest GeoJSON specification (2016), the coordinate reference system for all coordinates is a geographic coordinate reference system—using the World Geodetic System 1984 (WGS 84) datum—with longitude and latitude units of decimal degrees. The previous specification (2008) allowed for the use of alternative coordinates systems, but this was removed because of interoperability issues.
MAPublisher still recognizes GeoJSON files with a specified coordinate system even though it is no longer officially supported. However, if no coordinate system is specified, MAPublisher will assume the coordinates are in WGS 84. Occasionally, this may cause a problem of improperly formatted files that contain projected coordinates but have no specified coordinate system. In this case, users will need to either choose a coordinate system during import or modify the GeoJSON file by adding a coordinate reference system (CRS) object manually.
Selecting a Coordinate System on Import
To change the coordinate system using the Import dialog box, click Advanced and select the WGS 84 link under Coordinate System. Ignore the warning about changing the coordinate system by clicking “Replace coordinate system”. Select the correct projected coordinate system from the list.
Modifying the GeoJSON File Manually
Coordinate reference systems can be specified in a GeoJSON file using a CRS object. You can view the contents of any GeoJSON file by opening it in a text editor such as Notepad. Copy and paste the text below after the line: “type”: “FeatureCollection”, (usually on line 2). Change the EPSG number to the correct CRS for your dataset. See Spatialreference.org to lookup an EPSG code.
The latest release of MAPublisher includes the ability to trim and extend objects to a crossing or intersecting path. Extending a path lengthens it to meet the edge of a crossing object and trimming a path cuts the portion that extends past the edge of an intersecting path. Trim and extend tools are commonly used in CAD software and will greatly improve the ability to produce accurate and precise data in MAPublisher and clean-up imported data.
The MAP Trim Tool and MAP Extend Tools are located on the Adobe Illustrator Tools panel. Click and hold the MAP Trim or Map Extend tool button icon to switch between them. To use the tools, select the crossing or intersecting path and click the object to extend or trim. The diagram below illustrates the basic process.
There are many possible applications for these tools in digitizing and cleaning map data. In a hypothetical example illustrated below, we trim all the roads that extend past the edge of a border, and extend the imported roads (in bold) to meet the existing roads.
There are two methods of exporting GPS tracks from Avenza Maps in KML format: as a line and as a track. Which option to select depends on the intended purpose. Lines are much simpler than tracks and store only the position of each vertex in the line as latitude longitude and elevation. Tracks contain a complete description of how the path moves through space including the position at one-second intervals, the time at which each position was recorded, the compass angle of the heading, and the velocity. Lines take up much less storage space than tracks. To switch between exporting to Lines or Tracks, select Track Export in the Export Settings screen.
Tracks are useful in applications where the GPS position at a given time and space is important. For example, in Google Earth there is an option to record a tour that moves to predetermined places on the globe. This would be useful if you wanted to follow along on a hiking path or do a virtual walkthrough of a proposed building development. To make a tour from a track, open the KML file in Google Earth, select the track in the places panel, and click the Play Tour icon. The animation below shows a walk through Mount Pleasant Cemetery in Toronto, Canada. Lines contain only the location information: latitude longitude and elevation. Export to line when the time data is not important such as if you are making a map of a hiking trail.
KML Code for Lines and Tracks
KML (short for Keyhole Markup Language) is an XML notation for displaying spatial data in web applications. It was developed for use with Google Earth and can be read by many programs. Avenza Maps uses KML to import and export placemarks, lines, and tracks. You can view and modify KML files in any text editor. The KML element used for lines is called a Linestring which is defined as “a connected set of line segments”. A Linestring element contains a coordinates tag which is a list of longitude and latitude positions in decimal degrees and elevations in meters.
Tracks use the KML element “gx:Track” which contains several tags.
when – the date and time a point was recorded in UTC
gx:coord – the location of the point in decimal degrees and the elevation in meters
gx:angle – the current heading in compass degrees (i.e. 0 degrees is north, 90 is degrees east and so on)
gx:value tag defined as “speed” – the current speed in meters per second
There are equal numbers of each of these tags. A full description of the vertex includes all the tags in the same sequence. For instance, the first when tag, coord tag, angle tag, and speed tag, describe the first vertex in the track.