/* * Copyright (C) 2014 United States Government as represented by the Administrator of the * National Aeronautics and Space Administration. All Rights Reserved. */ /** * Illustrates how to use a GoToAnimator to smoothly move the view to a new location. This example listens for * terrain picks and moves the view to the location picked. * * @version $Id: GoToLocation.js 3320 2015-07-15 20:53:05Z dcollins $ */ requirejs(['../src/WorldWind', './LayerManager'], function (ww, LayerManager) { "use strict"; // Tell World Wind to log only warnings. WorldWind.Logger.setLoggingLevel(WorldWind.Logger.LEVEL_WARNING); // Create the World Window. var wwd = new WorldWind.WorldWindow("canvasOne"); /** * Added imagery layers. */ var layers = [ {layer: new WorldWind.BMNGLayer(), enabled: true}, {layer: new WorldWind.BingAerialWithLabelsLayer(null), enabled: true}, {layer: new WorldWind.OpenStreetMapImageLayer(null), enabled: false}, {layer: new WorldWind.CompassLayer(), enabled: true}, {layer: new WorldWind.CoordinatesDisplayLayer(wwd), enabled: true}, {layer: new WorldWind.ViewControlsLayer(wwd), enabled: true} ]; for (var l = 0; l < layers.length; l++) { layers[l].layer.enabled = layers[l].enabled; wwd.addLayer(layers[l].layer); } // Create a layer manager for controlling layer visibility. var layerManger = new LayerManager(wwd); // Now set up to handle clicks and taps. // The common gesture-handling function. var handleClick = function (recognizer) { // Obtain the event location. var x = recognizer.clientX, y = recognizer.clientY; // Perform the pick. Must first convert from window coordinates to canvas coordinates, which are // relative to the upper left corner of the canvas rather than the upper left corner of the page. var pickList = wwd.pick(wwd.canvasCoordinates(x, y)); // If only one thing is picked and it is the terrain, tell the world window to go to the picked location. if (pickList.objects.length == 1 && pickList.objects[0].isTerrain) { var position = pickList.objects[0].position; wwd.goTo(new WorldWind.Location(position.latitude, position.longitude)); } }; // Listen for mouse clicks. var clickRecognizer = new WorldWind.ClickRecognizer(wwd, handleClick); // Listen for taps on mobile devices. var tapRecognizer = new WorldWind.TapRecognizer(wwd, handleClick); });