I think there's a few steps involved and you may need three scalebars (instead of the two in my previous comment).
Create your first scalebar showing kilometers:
Create your second scalebar showing nautical miles:
Select the nautical mile scalebar and copy/paste it below (Ctrl+C, Ctrl+V will do, thanks to @Oto Kaláb for this very useful tip!):
Modify the ...
The only reasons I can see why it would not be appropriate to use a vertical scale bar would be:
The audience does not want it or does not understand it
The audience associates the vertical scale with elevation
For a simple way to make a vertical scale bar (tested in ArcGIS) - create a horizontal scale bar, convert it to graphics, and rotate +-90 degrees.
I don't think there's an option yet which allows you to put the units below the scalebar. An alternative could be to:
Modify your current scalebar and set its Font colour to match the background colour:
Item Properties > Fonts and colours > Font colour
Copy your scalebar and paste it directly below your original scalebar. Then set its Font colour to ...
One reason would be (I think it is mentioned in one of the comments) is that the vertical scale bar may not accurately represent the distance of the railway track. This would be due to the likelyhood of curves within the track itself.
A possible alternative to a vertical scale bar is to label the aggregated distance at each specific point of the track, ...
The north arrow is added as an image. The behaviour of the scale depends on the CRS of your data/map.
Once you start inserting an image in the composer, you should get the option to select from a library of icons, and a subfolder is arrows, of which there are are many types. Once the image is installed, there is an option to keep the rotation of the arrow ...
Save your scalebar as a template.
Create a blank composer, add a scalebar with your relevant settings then from the menubar in your print composer, go to:
Composer > Save as Template...
The next time you're creating a map, you can use:
Composer > Add Items from Template...
which will load your scalebar with the options you saved it with.
Set the Scalebar property Display > Box margin to 0 and drag the bottom frame border up to fit the scalebar.
The last lower left gap you cannot get rid of. It's the margin of the number 1. Margin can only be control vertically, between the scale numbers and the scalebar, but not horizontally.
You can modify the scale bar after you've inserted it.
Remember that the Ribbon options are based on whats highlighted/clicked/active. After you've clicked the scale bar, use the SCALE BAR TOOLS > DESIGN menu to modify the label
You may achieve what you want by using HTML-frame in the Layout.
In the Layout add a HTML-frame , choose 'Source' as HTML-source and add a similar code like this
[%'Scale 1:' || format_number(map_get(item_variables('atlas_map'), 'map_scale'),0) || ' at B0'%]
Change atlas_map to the name (id) of your map.
If you need the comma as separator, this may be ...
The ScaleLine represents the scale of the map on the screen, and hence is intrinsically different from the scale of a printed map.
The OSM tileset is built using the Web Mercator projection, and this projection does not maintain scale. This is why you do not get perfect scale.
If you want the geodesic scale, you should use the geodesic:true parameter ...
There's a few steps involved:
Create your first scalebar showing kilometers and set the relevant options:
Select the first scalebar and copy/paste it below the original and set the relevant options:
For the copied scalebar, set its Font colour to have an opacity of 0%:
Item Properties > Fonts and colours > Font colour
Move the copied scalebar and ...
As you don't know ArcObjects yet know Python, you can run this code to invoke ArcObjects from Python.
You would need to prepare the installation in order to be able to run this code. Refer to this blog post for detailed instructions. On GIS.SE, there are some great posts that helped me a lot to get started:
Accessing ArcObjects from Python?
Guidelines for ...
I don't think it is possible within qgis print composer.
However you can play with a template file to make it work. You can set the distance between the text labels and the scale bar in:
Item properties > Display > Labels margin.
Unfortunately you can't set it to a negative value (= scale bar above the text) within the print composer.
But you can within ...
A very ugly solution based on csk comment about a second scale bar, but it achieves the goal and it could be no harmful in a good template.
1.- First create a scale bar with the desired lenght on the right and shape (in this case a double box). In this case lenght 5 and unit 100 m
Create a second bar, but now with length two on the right and half of the ...
In order to use a scale bar with real measurements you must use a projected coordinate system, for example: WGS84 UTM (Zone XX north or south), Albers Equal Area (for large areas) or Lamberts Conformal Conic projection.
Select View::Data Frame Properties or right click on the data frame icon in the table of contents and go to the properties. In the view ...
Sorry, maybe my question was not clear enough, but I found the solution, and it simple enough.
IDisplayTransformationScales interface provides access to this data.
using .NET it look like:
var mxDocument = (IMxDocument)_application.Document;
var activeView = (IActiveView)mxDocument.FocusMap;
var dts = (IDisplayTransformationScales)activeView.ScreenDisplay....
The easiest way to do this is to add two scale bars, one as a bar and the other with the numeric style set. As long as you select the same map for the two scale bars you will never need to worry about sync'ing them.
You can easily achieve this without guessing and checking by right clicking your scale bar and finding the "When resizing" option. Make sure it is set to "Adjust width" and then change the division value to whatever you want. In addition, if you want your map to be at a specific ratio (i.e. 1 inch = 3000 ft), then you will need to set your map scale to "1:...
You should look at the Symbol effects.
Go to the properties Scale bar.
Choose Subdivision marks.
Switch to the Properties tab.
Click the Structure icon.
Click Add Effect and choose Cut.
Click the Symbol tab.
Under the Cut effect section, adjust your begin and end value as needed.
After applying the cut effect:
With 3 pt:
With 1.5 pt:
you can use the css classes named esriScalebarRuler and esriScalebarRulerBlock
I can't find a ruler example to see available css properties on these classes, but if you right click the scale bar and inspect it in the console, look for border styles to set to red, such as:
border: 2px ...
I don't think you can change the properties of the scale bar using the out-of-the-box Data Driven Pages functionality.
However, that is not to say that what you're looking to do is impossible.
It wouldn't be terribly difficult to do this using ArcPy and is roughly described in this [ESRI Help Page]. Using their example, you could set up multiple scale ...
The locations you specify are at different latitudes. Because the Spherical Mercator implementation used by Google maps compresses latitude, the scale will change depending on the distance from the Equator.
In your example, try zooming out a long way, then navigate northwards. You'll see that the scale bar gets progressively longer as you pan.
Judging from the coordinates we can see on your second screenshot (-99,30), I think that you changed the layer CRS in layer properties instead of properly reprojecting the data to state plane. Reproject the layers and try adding the scale bar then.
I used to automate layout generation through atlas back on 2.6. It generates per feature layout on a shp.
I assume your scale bar looked like that when the automation meet a feature that is too large compared to other feature that exist within one shp.
I assume the automation process are similar between atlas and plugin that you are using. To avoid such ...
You need to work within the Scale Bar Properties (see pic below), and set the "Division Value:" to the map distance you want represented by the scale value. So for example in your case you want to select a "1 inch = XXX ft." scale bar type, then open the properties and set Division Value to 0.2 miles. You will also need to set the "Division Units" dropdown ...
Here you can see a series of maps I produced, all at the same scale according to the map Item Properties.
Maps are in CRS EPSG 3857, scale (according to Item Properties) is 50,000,000, base map is Esri National Geographic. All scale bars are 2000 km long.
(Sorry about the poor image quality. I repeatedly encountered a bug with exporting from the print ...