Mouse Position

Example of a mouse position control, outside the map.

Example of a mouse position control, outside the map.

<!DOCTYPE html>
    <title>Mouse Position</title>
    <link rel="stylesheet" href="" type="text/css">
    <!-- The line below is only needed for old environments like Internet Explorer and Android 4.x -->
    <script src=",Element.prototype.classList,URL"></script>

    <div id="map" class="map"></div>
    <div id="mouse-position"></div>
      <label>Projection </label>
      <select id="projection">
        <option value="EPSG:4326">EPSG:4326</option>
        <option value="EPSG:3857">EPSG:3857</option>
      <label>Precision </label>
      <input id="precision" type="number" min="0" max="12" value="4"/>
      import Map from 'ol/Map.js';
      import View from 'ol/View.js';
      import {defaults as defaultControls} from 'ol/control.js';
      import MousePosition from 'ol/control/MousePosition.js';
      import {createStringXY} from 'ol/coordinate.js';
      import TileLayer from 'ol/layer/Tile.js';
      import OSM from 'ol/source/OSM.js';

      var mousePositionControl = new MousePosition({
        coordinateFormat: createStringXY(4),
        projection: 'EPSG:4326',
        // comment the following two lines to have the mouse position
        // be placed within the map.
        className: 'custom-mouse-position',
        target: document.getElementById('mouse-position'),
        undefinedHTML: '&nbsp;'

      var map = new Map({
        controls: defaultControls().extend([mousePositionControl]),
        layers: [
          new TileLayer({
            source: new OSM()
        target: 'map',
        view: new View({
          center: [0, 0],
          zoom: 2

      var projectionSelect = document.getElementById('projection');
      projectionSelect.addEventListener('change', function(event) {

      var precisionInput = document.getElementById('precision');
      precisionInput.addEventListener('change', function(event) {
        var format = createStringXY(;