Draw Tissot's indicatrices on maps.
Example of Tissot indicatrix maps. The map on the left is an EPSG:4326 map. The one on the right is EPSG:3857.
<!DOCTYPE html> <html> <head> <title>Tissot indicatrix example</title> <script src="https://code.jquery.com/jquery-1.11.2.min.js"></script> <link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css"> <script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script> <link rel="stylesheet" href="http://openlayers.org/en/3.8.1/css/ol.css" type="text/css"> <script src="http://openlayers.org/en/3.8.1/build/ol.js"></script> </head> <body> <div class="container-fluid"> <div class="row-fluid"> <div class="span6"> <h4>EPSG:4326</h4> <div id="map4326" class="map"></div> </div> <div class="span6"> <h4>EPSG:3857</h4> <div id="map3857" class="map"></div> </div> </div> </div> <script> var vectorLayer4326 = new ol.layer.Vector({ source: new ol.source.Vector() }); var vectorLayer3857 = new ol.layer.Vector({ source: new ol.source.Vector() }); var map4326 = new ol.Map({ layers: [ new ol.layer.Tile({ source: new ol.source.TileWMS({ url: 'http://demo.boundlessgeo.com/geoserver/wms', params: { 'LAYERS': 'ne:NE1_HR_LC_SR_W_DR' } }) }), vectorLayer4326 ], renderer: 'canvas', target: 'map4326', view: new ol.View({ projection: 'EPSG:4326', center: [0, 0], zoom: 2 }) }); var map3857 = new ol.Map({ layers: [ new ol.layer.Tile({ source: new ol.source.TileWMS({ url: 'http://demo.boundlessgeo.com/geoserver/wms', params: { 'LAYERS': 'ne:NE1_HR_LC_SR_W_DR' } }) }), vectorLayer3857 ], renderer: 'canvas', target: 'map3857', view: new ol.View({ center: [0, 0], zoom: 2 }) }); var wgs84Sphere = new ol.Sphere(6378137); var radius = 800000; var x, y; for (x = -180; x < 180; x += 30) { for (y = -90; y < 90; y += 30) { var circle4326 = ol.geom.Polygon.circular(wgs84Sphere, [x, y], radius, 64); var circle3857 = circle4326.clone().transform('EPSG:4326', 'EPSG:3857'); vectorLayer4326.getSource().addFeature(new ol.Feature(circle4326)); vectorLayer3857.getSource().addFeature(new ol.Feature(circle3857)); } } </script> </body> </html>