Rotated Views

Most projections show a "North Up" display.  The topic shows how to create rotated views where North is not up.   Rotated views are also covered in two videos, the Rotated Views video, which shows a simple way to create North arrows, and the Portable North Arrows video, which shows the more sophisticated technique also used within this topic.


ico_nb_arrow_blue.pngThis topic has not yet been fully updated to reflect extensive new features and changes made in build  Please see the Changes and Additions topic for a guide until this topic has been updated.   The topic works as is, but the new Snap to Bearing snap mode now makes it much easier to add a vertical, North arrow than the method shown in this as yet not updated topic.  Stay tuned for updates!



ico_nb_arrow_blue.png Download the sample project to follow along with this topic.


Creating a Rotated View


  1. Compose the desired scene "North up" in a map. that uses default Pseudo-Mercator projection.

  2. Save the current location to a Location.

  3. Double-click the Location to open it, and note the lat/lon of the location.

  4. Copy the map and Paste it as new map.  

  5. Open the new map.  

  6. For that new map, choose Edit Coordinate System.

  7. In the Custom tab, enter a memorable Name, and choose Hotine Oblique Mercator (B) as the Type.

  8. For the Center latitude and Center longitude, use the lat/lon values noted from the Location.

  9. Leave 0 for the Center line azimuth.

  10. Enter the rotation desired as the Rectified grid value.  For example to rotate 70 degrees counter-clockwise we would enter -70.  To rotate clockwise 45 degrees we enter 45.

  11. Press OK.

  12. Right-click on the saved Location and choose View in Active Window.


It is usually a good idea to include a drawing layer in the original, North-up map that has a vertical line with an arrowhead at the end, to use as a North arrow.  The rotated, Hotine Oblique Mercator map will rotate that drawing layer as well, so the result will be an arrow that points North in the Hotine map.


We will create a rotated view of Italy.  Basically, this is as easy as noting the center latitude and longitude of the desired view of our area of interest (which we can read out from the status bar) and then changing the projection of the map to use the Hotine Oblique Mercator (B) projection with that center latitude and longitude and the desired rotation angle.    


Rotating a view is therefore basically only one step: reprojecting into the desired, rotated, Hotine projection.   All the rest of the workflow illustrated in this topic covers various real-life conveniences that experienced users tend to apply.




We begin with a map that has a Bing street map web server layer.    The first layer added to a map sets the projection for that map, in this case, the Pseudo Mercator projection that Bing, Google and almost all web servers use.




We drag and drop a drawing of provinces in Italy into the map.  The layer comes from a free administrative units layer that may be downloaded from the Natural Earth website.  We have thematically formatted it to show provinces in different colors.   We have also created a Location for this view, so we can return to it easily.




We can double-click the location to open it.  The location provides a handy way to recall the center latitude and longitude of the view.  We can undock the location window and then refer to it when we change the projection. Shift-click the title tab for a window or a pane to undock it.  That saves us from trying to remember the center latitude and longitude when we are busy filling in boxes in a coordinate system dialog, when the status bar might not be visible, the mouse might not be in the center of the display, and so on.  


In this case, we see the view is centered on a longitude of 42 and a latitude of 13. That would be an amazing coincidence given the view was chosen by casually panning and zooming into the view, except that we have taken the liberty of editing the original numbers, which were almost exactly 42 and 13, to the exact numbers of 42 and 13.


When experimenting with rotated views, it is convenient to work with a copy of the map.  There is no absolute need to work with a copy: we can simply change the coordinate system on the original map.  But given that it takes just a moment to make a copy (Ctrl-C and then Ctrl-V), it can be very convenient to work with a copy.   




We click on the map and chose Copy in the toolbar.  We could also simply click on the map and then press Ctrl-C for Copy.




Next, we Paste a copy of the map by pressing the Paste button on the toolbar.  We could also simply press Ctrl-V for Paste.  The pasted copy appears using the name Map 2.


Maps are just windows that show their contents in a desired projection.  Maps store no data, as all the data they show remains, unchanged, within the drawings, images and data sources that appear in the map.  We can make as many copies of maps as we like without increasing the storage size of the project.  Each such map can use a different projection, with the various layers within the map being re-projected on-the-fly from their native projections into whatever projection the map uses.




We rename the pasted copy to Rotated Map, we double-click it to open it, and then we double-click the Bing tab to turn that layer off, to reduce visual clutter.   We have used the Layers pane to set a background color of medium gray. We choose the Component pane.


btn_coord_sys_picker.png  We click the coordinate system picker button to change the coordinate system (projection) used by the map.




In the menu that appears we choose Edit Coordinate System.   The Coordinate System dialog appears.




A rotated map view uses the Hotine Oblique Mercator (B) projection. "Hotine" in English is pronounced with the first syllable sounding like the "ho" part of "hot" and the second syllable sounding like "teen," with the stress on the first syllable.  It is named after the inventor, Brigadier General Martin Hotine, who led the UK's Ordnance Survey for many years.


Because the center latitude and longitude of the area of interest must be specified, each such use of the Hotine Oblique Mercator is a custom, one-of-a-kind coordinate system.    We provide a memorable name, Italy Rotated Hotine, and in the Type box we choose Hotine Oblique Mercator (B) from the long list of options.


To create a rotated view, we enter the center latitude and longitude, and then in the Rectified grid box we  enter the rotation angle in degrees (positive numbers for clockwise rotation, negative numbers for counterclockwise rotation).   The center latitude and longitude values we can read from the Location that we thoughtfully created and opened, in this case a Center latitude of 42 and a Center longitude of 13.    We want to rotate the display 45 degrees counterclockwise, so we enter a value of -45 into the Rectified grid box.  Press OK.




The display zooms to the full extent of all layers, including the worldwide Bing layer.  We can zoom in manually or choose the Location to get in the ballpark.




With a bit of panning and zooming we get the above display.  Italy is, indeed rotated 45 degrees counterclockwise.

Adding a North Arrow

When a projection shows "North up" a North arrow is less important to show orientation, but when a projection is rotated so North is no longer up, a North arrow is a good idea to show orientation.


To add North arrows to a display we add a drawing layer to the map, and then in that drawing layer we create a line oriented vertically in a non-rotated display.  Extensive Style capabilities for drawings make it easy to add an arrow head to the end of the line, so it appears as an arrow pointing North.   tech_tina_sm.png


ico_nb_arrow_blue.png Stay tuned for easier arrows - In upcoming builds, Manifold will add the ability to drop in a North arrow, selected from a pre-built collection of North arrow styles, as an annotation element to maps.  For now, we create the North arrow manually, using a combination of styling plus automatically computed geometry to create various elements of the North arrow in a single record.   This provide great flexibility, but it involves more tinker time.


The technique of using automatically computed geometry is covered in the Portable North Arrows video.  The other video on rotated views, the Rotated Views video, shows a different, simpler but ultimately less flexible, way to create North arrows.


We choose File - Create - New Drawing.




We enter North Arrow as the Name for the new drawing and press Create Drawing.  Using a clearly descriptive name will later on make it easier to know the contents of each layer tab if our map has many layers.


We will now add a vertical line to the drawing, using the techniques described in the Editing Drawings topic.


First, we click on the Map tab to switch from the Rotated Map back to the Map.




We drag and drop the new, as yet blank, North Arrow drawing into the map.  To create a line, we choose Create Line.




We click the lower point of the line and then we click the upper point, approximately directly above the lower point.


Next, we click the Coordinates tab.




We do not have to ensure the two points are vertically aligned precisely, because we can ensure perfect vertical alignment by clicking on the Coordinates tab of the Record pane, which automatically appears when we start adding a new object.   Coordinates are in X, Y order, which means that longitudes (which we want to be the same for a vertical line) appear in the left-most column.   Double-click into one of the longitude boxes to open it for editing.




Do a Ctrl-A to highlight all of the value, followed by a Ctrl-C to Copy.




Next, double-click into the other longitude value, Ctrl-A to highlight all of it and then Ctrl-V to Paste.   Press Enter to accept the edit.





Press Add Record to create the line.


In the main toolbar switch the cursor to Default mode, to avoid starting any new lines when clicking into the map.




We switch to the Style pane to format the line into something that looks more like a North arrow.   We click on the total style button for lines, and then choose More... in the menu to launch the Line Style dialog.




The Line Style dialog allows us to choose many different characteristics of line style all at once.   We choose a dark gray for the color of the line, since black is too intense, a width of 4 points and an arrow head symbol for the End of the line, using settings as seen above.  We press OK.




The result is a line that looks like a simple North arrow.   Because the Pseudo Mercator projection is oriented North up, a vertical line with an arrowhead at the top points exactly North in this projection.




We drag and drop the North Arrow drawing into the Rotated Map.   In that map's projection, the line in the North Arrow drawing is also projected on the fly into the rotated Hotine Oblique Mercator projection the map uses.    We have added a North arrow that is a simple, but perfectly serviceable, indication of North in our map.  

Adding an N Label at the Center of the Arrow

Many people prefer to label North arrows with an "N" label or some other indication that this is a North arrow.   The easiest way to do that with a line object is to use Edit - Schema to edit the schema for the North Arrow Table to add a text field.  We can then put the letter N or the word North or whatever into the text field and then create a label layer from the North Arrow drawing.  The label will automatically appear at the mid-point of the line, with the text aligned to whatever is the direction of the line in the view.




The illustration above shows a typical result.  We have added a text field to the North Arrow Table and placed the letter N into that field.   We then created a labels component called North Label from the North Arrow drawing using the text field, and added that labels component to the map.   We used Style for labels to choose the Lucida Calligraphy font in Italic Bold, in the size and white color shown, with a 1 point shadow in black.  


Given some tinker time with Style to create a more elegant arrow or a different label style, this is a perfectly good approach.   The label is automatically created from the line and positioned on the line, so if we resize the line or move it, the label stays centered and moves with the line.

Adding an N Label at the Beginning of the Arrow

We can, however, utilize more sophisticated techniques to put the N label at the beginning of the line instead of in the middle.   The following workflow shows how to do that, and also incidentally shows how to edit the North Arrow Table to add a text field as required by the technique immediately above.




To open the North Arrow Table we right-click on the layer tab for the North Arrow drawing and choose Open Table.   We also could have simply double-clicked on the North Arrow Table in the Project pane, but often in projects that have many dozens or even hundreds of items in the Project pane it is quicker to simply use the context menu on the layer tab of interest.




The table opens.  We choose Edit - Schema to open the Schema dialog.  




We will add a text field to hold the N character that our label will show.   We click <new field>, enter a descriptive name, Text, as the Field name, choose nvarchar as the Type and press Add to add the new field to the schema.




Next, we create a computed field in the table that generates a point at the beginning of the line object.   We click <new field> again, enter a descriptive name, GeomBegin as the Field name, and we choose geom as the Type.    In the Expression box we enter a simple SQL expression that generates a point from the first coordinate of the line object:


GeomMakePoint(GeomCoordXY([Geom], 0))


The GeomCoordXY function takes two arguments: a geometry field, and a number.  The function creates an X,Y vector value for the coordinate specified by the number.  Using zero-based counting, number 0 is the first coordinate of the object, which is taken from the Geom field in the table.


The GeomMakePoint function takes an X,Y vector value and creates a point object at that X,Y location.









We press Add to add that new, computed field to the schema.




We review our work and then press OK to update the table.  If we detected an error or wanted to change something, we could press Cancel to exit the dialog without making any changes.




Instantly, the table is updated with two new fields: a field named Text that at present is empty, and a field named GeomBegin that is a computed field.  It contains a point object that was computed by the expression we entered from the line object in the Geom field.




We take a moment to double-click into the Text cell to enter the letter N.   We will use this text as a label.   We now will create a new drawing from the North Arrow Table.  We right-click onto the North Arrow Table and choose Create - New Drawing from the context menu.




We provide a memorable name, North Arrow Begin, as the Name, we choose the GeomBegin field as the Geometry field, we choose the Pseudo Mercator projection as the Coord system and we press Create Drawing.


We close the North Arrow Table and switch to the Map.




A new,  North Arrow Begin drawing appears in the Project pane.   The drawing contains a single point object, created at the beginning of the line.  We will not display the drawing.  Instead, we will use it to generate a label at the point object's location, using the text from the record.     We right-click on the North Arrow Begin drawing and choose Create - New Labels.




We enter a descriptive name, N Begin Label, in the Name box, we choose Text as the Text field to use, and we press Create Labels.  A new labels component called N Begin Label appears in the Project pane.




We drag and drop the new N Begin Label layer into the map.  A small letter N in 8 point font appears, barely visible at the beginning of the North arrow line.  We choose the Style pane to style the label.     We click on the total style button and then choose More... from the menu to launch the Label Style dialog.




In the Label Style dialog, we choose white color for the text and Nunito Sans Bold as the font, in 10 point size.  In the Box tab we enable a box, choosing a circular box with Padding of 1 point and Stroke of 1 point.   We use the same foreground and background colors for the box as used by the North arrow.  We can choose exactly the same color by using the Color Picker tool.   Not visible in the above is that in the Symbol tab we applied a 1 point Shadow to the text label, using a light gray color for the shadow.  That gives a subtle, but effective, sense of presence to the text, created by the slightest hint of dimensionality from the barely-visible drop shadow on the text letters.


We press OK to apply the style changes.




The new label appears in the style we desire.   It automatically takes its position and text from the point object created in the North Arrow Begin drawing.   That point object was created using the GeomBegin computed field, which automatically computes the position for the point based on the line object, stored in the Geom field of the same record, that is used to draw the North arrow.  If we change the size or location of the North arrow line object, the point object at the beginning will automatically be re-calculated to move accordingly.  




We click on the Rotated Map tab and drag and drop the N Begin Label layer into that map.   The new label appears there as well.  Because the colors used in the label's box are the same as the North arrow, it seems to be a part of the North arrow.   Note that the text in the label has not been rotated.  Labels for point objects are not rotated, but printed are printed right-side up.




We can create additional drawings based on the North Arrow Table to create different styles.   In each case, we simply create a new "north arrow" drawing that shows the line object in the Geom field, and we create  new "n label" labels layer that generates a label from the North Arrow Begin drawing's point.  We style the "north arrow" drawing and the "n label" labels layer as desired, and drag and drop them into the map.  The easiest way to create a new "north arrow" drawing  and new "n label" labels layer is to simply copy and paste the existing ones.   We can then style the copies as desired.


The illustration above shows a typical use of that workflow.  We copied and pasted both the North Arrow drawing and the N Label labels layer, resulting in the automatically-named North Arrow 2 drawing and N Label 2 labels layer.  We then styled those copies to create a different appearance for the North arrow.

Labels and Rotation

Labels created from areas and points are not rotated by a change of projection.  They always remain "right side up."




For example, the illustration above shows a layer called Italy Labels that is a labels component created using the Italy drawing, taking text for the label from a name field in the Italy drawing that gives the name of each province.   Labels appear "right side up."




Dragging and dropping the same labels layer into the Rotated Map we see that a change of projection to a rotated Hotine Oblique Mercator will not rotate the labels.  




If we turn on the Bing street maps layer in the Rotated Map we see the new projection rotates that layer as well.  We should keep in mind there are no "labels" in the Bing layer, which is just a raster image.  What seem to be labels are simply different colors in a sea of pixels that appear to form intelligible text.   The projection automatically rotates the raster, so the appearance of text labels in that raster are also rotated.




That is one reason why web server layers like Bing have limited utility in rotated presentations.  Much better are Bing layers like satellite view layers, as seen above.  

North Arrows at Different Zooms / Layouts

The technique described in this topic for manual creation of North arrows creates them as line objects.  A consequence of that approach is that the North arrow is placed and sized for a display that is panned and zoomed to a specific view.  If we change the display by panning it, the North arrow may no longer be in view, and if we zoom the display the North arrow may no longer be the desired size.   A North arrow that is the right size for a particular zoom level for a view of Italy will be too small when the display is zoomed out to show all of Europe, and it will be too big or not visible if we zoom into a particular town in Italy.


One way to get around that for published documents is to use layouts.    First we create the map desired, including approximate placement of the North arrow, and including application of the Hotine Oblique Mercator projection to create any rotated view that is desired.   Next, we create a copy of the map in which the North arrow appears.    In one copy of the map, we turn on all desired layers except those used for the North Arrow.   In the other copy of the map we turn off all layers except the North arrow layers.   


We then create a layout that includes as a big frame the copy of the map without a North arrow, panned and zoomed to the view desired.   We then drag and drop the North arrow copy of the map into the layout, and we resize that new frame to be a smaller, inset-sized frame.   We pan and zoom that frame to show the North arrow in the size desired.  We can then move that frame about as we want to position the North arrow in the layout.   Since both frames, the bigger map layers frame and also the smaller North arrow frame, are copies of the same map, they both use the same coordinate system.  Any application of the Hotine projection to create a rotated view will apply the same in both, so the rotation of the North arrow in its frame will match any rotation in the other frame.


Using North Arrows in Layouts:


  1. Create the map desired, applying Hotine Oblique Mercator projection for any desired rotation.

  2. Copy and paste the map to create a duplicate map.  We now have two copies.

  3. In one copy, hide any North arrow layers.

  4. In the other copy, hide all layers except North arrow layers.

  5. Create a layout.

  6. Drag and drop into the layout the map with North arrow layers hidden.

  7. Pan, zoom and style that frame for the desired view.

  8. Drag and drop into the layout the map showing North arrow layers.

  9. Resize that frame to be slightly larger than the desired size of the North arrow.

  10. Pan and zoom that frame to show the North arrow in the center at the desired size.

  11. Move the North arrow frame as desired to compose the layout.


We begin with a rotated map using the same vector drawing of Italy.   


We use yet a different style of North arrow, where we have added two drawings in white, both created from the same North Arrow Table, and both with point and line object slightly larger than either the North Arrow or the N Label so they appear to form a continuous white outline.    Because these drawings are created from the same record in the same table, if we move or resize the North Arrow the white outlines will also move or resize synchronously.




We have made two copies of the map, one called Rotated Map 1 and the other called Rotated Map 2.    In the illustration above, we see Rotated Map 1.




In Rotated Map 1 we double-click on all of the layer tabs for North arrow layers to turn them off.  If we prefer, we can simply right-click on each tab and choose Delete from Map to remove those layers from the map.   Double-clicking to turn them off is simply faster.




We open Rotated Map 2 and in this copy of the map we double-click the Italy layer tab to turn off that layer.  Rotated Map 2 now shows only the North arrow layers.




We create a Layout and use File - Page Setup to choose landscape mode and to set the margins to 10 mm all around.    If we are not familiar with Layouts, now is a good time to review the Layouts topic to learn how to compose layouts and work with frames.


We drag and drop Rotated Map 1 into the layout.   Next, we double-click that frame to enable it in pan/zoom mode, and then we pan and zoom the frame to get the view above.  We Alt-click the frame to exit pan/zoom mode and to enable it for editing.  By default, frames use transparent background color.  We choose the same background color used in the map (using the color picker tool to match colors exactly), click Update Record, and then we Alt-click somewhere outside the frame to exit editing mode.  We now have the display seen above.




Next, we drag and drop Rotated Map 1 into the layout, and then we immediately and then we Alt-click the frame to enable it for editing.   We resize the frame so it is smaller, as seen above.  We double-click into the smaller frame to enable pan/zoom mode.  We zoom out until we see part of the North arrow and then we pan and zoom to get the North arrow in view within the frame at the size desired.  Finally, we alt-click onto the frame to switch it into editing mode, which allows us to drag the frame around to move it wherever we want.




Because the frame by default has transparent background color, we can position the North arrow wherever we want.    We move it to the lower left corner, and then we click anywhere outside the frame to exit editing mode.  That produces our final layout, as seen above.   The fine line surrounding the North arrow frame indicates the boundary of the frame: it does not appear in any final print product.

Printing the Layout to PDF

We choose File - Print to print the layout, and for our "printer" we choose FreePDF, which appears as a printer when we install the FreePDF package.   FreePDF is honest, free software that may be installed in Windows editions which do not have a built in Microsoft Print to PDF facility.




The result, as seen above in Adobe Reader, provides a remarkably good rendering.   A side effect of using line objects to create North arrows is that the ratios of widths to lengths will vary slightly.  This is expected to improve with upcoming Manifold builds, but even so with a bit of tinker time we can adjust for that by slight, trial-and-error, adjustments to North arrow line size by editing the line object in the North Arrow layer.   If we save our project (instantaneous) before experimenting, there is no risk in tinkering with the line length or styling.




Zooming in, we see the combination of Manifold and FreePDF provides a remarkably crisp and clean display.    We can see for ourselves, if we desire: The PDF created in this example may be downloaded from  Italy_rotated.pdf.



Credits - This topic was inspired by a post in the forum by expert Manifold user Tim Baigent.  Thanks, Tim!


Download a sample PDF - The PDF created in this example may be downloaded from Italy_rotated.pdf.



Manifold Viewer - Rotated Views -  Learn how to create rotated views, to display maps where North is not always up.  The video shows how to create a rotated map of Italy in seconds, with perfect cartographic accuracy.  See how to create North arrows, labels, and how Manifold can instantly re-project on the fly to create rotated views of web served layers from Bing street maps, satellite photography and much more.   The video uses the free Manifold Viewer and works exactly the same in Release 9 as well.


Manifold Viewer - Portable North Arrows -  Continuing on from the preceding Rotated Views video, we explore a more sophisticated way of creating custom North arrows that can be easily repositioned and recycled.  Instead of creating a North arrow that is a combination of two objects, we use a tiny SQL expression to create a computed geometry field within a single object that automatically tracks any changes, such as creation of new North arrows, resizing or repositioning.  Amazing to see all this can be created in the free Viewer!  Works in Manifold Release 9 too!


See Also

Getting Started












Project Pane




Tracker: Measurements


Component Pane


Layers Pane


Map Projection


Example: Project Pane Tutorial - In this example we take an extended tour of the Project pane, engaging in a variety of simple but typical moves that are illustrated step by step.


Example: Layers Tutorial - We take a tour of the Layers pane in the Contents pane, learning how to manage layer display order, select layers, turn several layers on and off at the same time, alter opacity settings for one or more layers and how to change background color.


Example: Create Maps - Maps are used to show layers that can be drawings, images, and labels.  This topic shows how to create new, blank maps, how to create maps from existing components, and how to create maps from other maps.


Example: How Not to Format a Drawing -  When using Style to format a drawing it is a really bad idea to use the same color for objects that is used for the background color.    It can also be a bad idea to use transparent color.   This topic illustrates why.


Example: Re-project a Drawing - An essential example on changing the projection of a drawing, either within the drawing itself, or by changing the projection of a map window that shows the drawing and re-projects on the fly for display.


Example: Create a Rotated View of a Map - Illustrates use of rotated views, that is, map displays which are not "North up," using a  Bing street map image server layer, to show how even layers fetched on the fly from a web server can be rotated.  The topic also shows an alternate way of creating North arrows that is initially simpler, but ultimately much less convenient than the more sophisticated method illustrated in the Rotated Views topic.