Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

OGC TMS implementation #33

Closed
wants to merge 5 commits into from
Closed
Show file tree
Hide file tree
Changes from all commits
Commits
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
46 changes: 46 additions & 0 deletions examples/TMS.html
Original file line number Diff line number Diff line change
@@ -0,0 +1,46 @@
<!DOCTYPE html>
<!--@version $Id: TMS.html 2016-07-21 08:35 rsirac $-->
<html lang="en">
<head>
<!--NOTE: Most Web World Wind examples use jquery, Bootstrap and requirejs but those technologies are NOT-->
<!--required by Web World Wind. See SimplestExample.html for an example of using Web World Wind without them.-->
<meta name="viewport" content="width=device-width, initial-scale=1">
<link rel="stylesheet" href="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css">
<script src="//ajax.googleapis.com/ajax/libs/jquery/2.1.3/jquery.min.js" type="text/javascript"></script>
<script src="http://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js"></script>
<script data-main="TMS.js" src="https://cdnjs.cloudflare.com/ajax/libs/require.js/2.1.17/require.min.js"></script>
</head>
<body>
<div class="container">
<div class="jumbotron hidden-xs">
<h1 style="text-align:center">WorldWind TMS Example</h1>
</div>
<div class="row">
<div class="col-sm-3">
<h4>Projection</h4>
<div class="dropdown" id="projectionDropdown">
</div>
<br>
<h4>Layers</h4>
<div class="list-group" id="layerList">
</div>
<br>
<h4>Destination</h4>
<div class="input-group" id="searchBox">
<input type="text" class="form-control" placeholder="GoTo" id="searchText"/>
<span class="input-group-btn">
<button id="searchButton" class="btn btn-primary" type="button">
<span class="glyphicon glyphicon-search"></span>
</button>
</span>
</div>
</div>
<div class="col-sm-9" id="globe">
<canvas id="canvasOne" width="1000" height="1000" style="width: 100%; height: auto">
Your browser does not support HTML5 Canvas.
</canvas>
</div>
</div>
</div>
</body>
</html>
101 changes: 101 additions & 0 deletions examples/TMS.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,101 @@
/*
* Copyright (C) 2014 United States Government as represented by the Administrator of the
* National Aeronautics and Space Administration. All Rights Reserved.
*/
/**
* @version $Id: TMS.js 2016-07-21 rsirac $
*/

requirejs([
'../src/WorldWind',
'../examples/LayerManager'
],
function (
ww,
LayerManager
) {
"use strict";

WorldWind.Logger.setLoggingLevel(WorldWind.Logger.LEVEL_WARNING);

var wwd = new WorldWind.WorldWindow("canvasOne");

// Variable to store the capabilities document
var TmsCapabilities;

// Variable to store TMS layer from capabilities
var layerFromCapabilities;

// Variable indicating if every parsing is over
var deferred = $.Deferred();


/* Create a layer from capabilities document */
{
// Fetch capabilities document
$.get('https://mrdata.usgs.gov/mapcache/tms/1.0.0/', function (response) {
// Parse first capabilities
TmsCapabilities = new WorldWind.TmsCapabilities(response);
})
.then(function () {
// Wait for parsing all associated capabilities
$.when.apply($, TmsCapabilities.promises).done(function () {
// Create the configuration object
var tmsConfig = new WorldWind.TmsLayer.formLayerConfiguration(TmsCapabilities.tileMaps[12]);
// Create the layer
layerFromCapabilities = new WorldWind.TmsLayer(tmsConfig, "TMS from capabilities");
// Show that every parsing is over
deferred.resolve();
}
);
});
}

/* Create a layer on the fly / hardcoded */
{
// Create the resolutions array for tile matrix set
var maxResolution = 0.703125;
var resolutions = [];
for (var i = 0; i < 18; i++) {
resolutions.push(maxResolution / Math.pow(2, i));
}

var layerOnTheFly = new WorldWind.TmsLayer({
extent: [-180, -90, 180, 90],
resolutions: resolutions,
origin: [-180, -90],
format: "image/png",
coordinateSystem: "EPSG:4326",
size: 256,
matrixSet: "WGS84",
layerName: "mrds",
service: "http://mrdata.usgs.gov/mapcache/tms/1.0.0/"
}, "TMS on the fly");
}


// When every parsing is over
$.when($,deferred).done(function () {

// Create layer list
var layers = [
{layer: new WorldWind.BMNGLandsatLayer(), enabled: true},
{layer: layerFromCapabilities, enabled: true},
{layer: layerOnTheFly, enabled: false},
{layer: new WorldWind.CompassLayer(), enabled: true},
{layer: new WorldWind.CoordinatesDisplayLayer(wwd), enabled: true},
{layer: new WorldWind.ViewControlsLayer(wwd), enabled: true}
];

// Add the layers
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 layerManager = new LayerManager(wwd);

});
});
9 changes: 9 additions & 0 deletions src/WorldWind.js
Original file line number Diff line number Diff line change
Expand Up @@ -199,6 +199,9 @@ define([ // PLEASE KEEP ALL THIS IN ALPHABETICAL ORDER BY MODULE NAME (not direc
'./layer/TiledImageLayer',
'./util/TileFactory',
'./gesture/TiltRecognizer',
'./ogc/TmsCapabilities',
'./layer/TmsLayer',
'./ogc/TmsLayerCapabilities',
'./gesture/Touch',
'./shapes/TriangleMesh',
'./error/UnsupportedOperationError',
Expand Down Expand Up @@ -415,6 +418,9 @@ define([ // PLEASE KEEP ALL THIS IN ALPHABETICAL ORDER BY MODULE NAME (not direc
TiledImageLayer,
TileFactory,
TiltRecognizer,
TmsCapabilities,
TmsLayer,
TmsLayerCapabilities,
Touch,
TriangleMesh,
UnsupportedOperationError,
Expand Down Expand Up @@ -789,6 +795,9 @@ define([ // PLEASE KEEP ALL THIS IN ALPHABETICAL ORDER BY MODULE NAME (not direc
WorldWind['TiledImageLayer'] = TiledImageLayer;
WorldWind['TileFactory'] = TileFactory;
WorldWind['TiltRecognizer'] = TiltRecognizer;
WorldWind['TmsCapabilities'] = TmsCapabilities;
WorldWind['TmsLayer'] = TmsLayer;
WorldWind['TmsLayerCapabilities'] = TmsLayerCapabilities;
WorldWind['Touch'] = Touch;
WorldWind['TriangleMesh'] = TriangleMesh;
WorldWind['UnsupportedOperationError'] = UnsupportedOperationError;
Expand Down
Loading