Book Image

OpenLayers 3: Beginner's Guide

By : Thomas Gratier, Paul Spencer, Erik Hazzard
Book Image

OpenLayers 3: Beginner's Guide

By: Thomas Gratier, Paul Spencer, Erik Hazzard

Overview of this book

<p>This book is a practical, hands-on guide that provides you with all the information you need to get started with mapping using the OpenLayers 3 library.</p> <p>The book starts off by showing you how to create a simple map. Through the course of the book, we will review each component needed to make a map in OpenLayers 3, and you will end up with a full-fledged web map application. You will learn the key role of each OpenLayers 3 component in making a map, and important mapping principles such as projections and layers. You will create your own data files and connect to backend servers for mapping. A key part of this book will also be dedicated to building a mapping application for mobile devices and its specific components.</p>
Table of Contents (22 chapters)
OpenLayers 3 Beginner's Guide
Credits
About the Authors
About the Reviewers
www.PacktPub.com
Preface
Index

Time for action – a sense of direction


In this example, we'll display an icon at the user's location, use values from the DeviceOrientation API to create a simple compass, and by rotating it, show which way is north. Perform the following steps to achieve what's been set out in this paragraph:

  1. Open the previous example in your text editor, and change the icon we are using from a flag to an arrow. We'll use an arrow pointing up for north. Here's the code to accomplish this:

    <div id="location" class="marker icon-arrow-up"></div>
  2. Now, add the following code at the end of the script tag, right after our Geolocation code:

    var deviceOrientation = new ol.DeviceOrientation({
      tracking: true
    });
    deviceOrientation.on('change:heading', onChangeHeading);
    function onChangeHeading(event) {
      var heading = event.target.getHeading();
      var el = document.getElementById('location');
      el.style['-webkit-transform'] = 'rotate('+heading+'rad)';
      el.style['transform'] = 'rotate('+heading+'rad)';
    })...