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 – making rectangle export to GeoJSON with ol.interaction.DragBox


After introducing the goal, we should do the following:

  1. Reuse the usual sample for the chapter that include the osm_default and map variables.

  2. Between the two variables, declare ol.interaction.DragBox, as follows:

    var dragBoxInteraction = new ol.interaction.DragBox({
      condition: ol.events.condition.shiftKeyOnly,
      style: new ol.style.Style({
        stroke: new ol.style.Stroke({
          color: 'red',
          width: 2
        })
      })
    });
  3. Like for DragRotateAndZoom, deactivate DragZoom, and add the new interaction in the interactions parameter within ol.Map, as follows:

    interactions: ol.interaction.defaults({
      shiftDragZoom: false
    }).extend([dragBoxInteraction]),
  4. Then, open your browser and try to draw a rectangle by holding down the Shift key while dragging with the mouse.

  5. Now, add the following code between the dragBoxInteraction and map declarations:

    dragBoxInteraction.on('boxend', function(e) {
      var format = new ol.format...