Scale Line

This example uses OpenLayers v4.0.1. The latest is v.

#### Scale Line

Example of a scale line.

Related API documentation:

- ol.Map
,
- ol.View
,
- ol.control
,
- ol.control.ScaleLine
,
- ol.layer.Tile
,
- ol.source.OSM

Copy Edit
Scale Line Example of a scale line. var scaleLineControl = new ol.control.ScaleLine(); var map = new ol.Map({ controls: ol.control.defaults({ attributionOptions: /** @type {olx.control.AttributionOptions} */ ({ collapsible: false }) }).extend([ scaleLineControl ]), layers: [ new ol.layer.Tile({ source: new ol.source.OSM() }) ], target: 'map', view: new ol.View({ center: [0, 0], zoom: 2 }) }); var unitsSelect = document.getElementById('units'); function onChange() { scaleLineControl.setUnits(unitsSelect.value); } unitsSelect.addEventListener('change', onChange); onChange(); <div id="map" class="map"></div> <select id="units"> <option value="degrees">degrees</option> <option value="imperial">imperial inch</option> <option value="us">us inch</option> <option value="nautical">nautical mile</option> <option value="metric" selected>metric</option> </select>

    <!DOCTYPE html>
    <html>
      <head>
        <title>Scale Line</title>
        <link rel="stylesheet" href="https://openlayers.org/en/v4.0.1/css/ol.css" type="text/css">
        <!-- The line below is only needed for old environments like Internet Explorer and Android 4.x -->
        <script src="https://cdn.polyfill.io/v2/polyfill.min.js?features=requestAnimationFrame,Element.prototype.classList,URL"></script>
        <script src="https://openlayers.org/en/v4.0.1/build/ol.js"></script>
      </head>
      <body>
        <div id="map" class="map"></div>
        <select id="units">
          <option value="degrees">degrees</option>
          <option value="imperial">imperial inch</option>
          <option value="us">us inch</option>
          <option value="nautical">nautical mile</option>
          <option value="metric" selected>metric</option>
        </select>
        <script>
          var scaleLineControl = new ol.control.ScaleLine();

          var map = new ol.Map({
            controls: ol.control.defaults({
              attributionOptions: /** @type {olx.control.AttributionOptions} */ ({
                collapsible: false
              })
            }).extend([
              scaleLineControl
            ]),
            layers: [
              new ol.layer.Tile({
                source: new ol.source.OSM()
              })
            ],
            target: 'map',
            view: new ol.View({
              center: [0, 0],
              zoom: 2
            })
          });

          var unitsSelect = document.getElementById('units');
          function onChange() {
            scaleLineControl.setUnits(unitsSelect.value);
          }
          unitsSelect.addEventListener('change', onChange);
          onChange();
        </script>
      </body>
    </html>