206 lines
8.4 KiB
HTML
206 lines
8.4 KiB
HTML
<!doctype html>
|
|
<html lang="en">
|
|
<head>
|
|
<meta charset="utf-8">
|
|
<meta http-equiv="X-UA-Compatible" content="chrome=1">
|
|
<meta name="viewport" content="initial-scale=1.0, user-scalable=no, width=device-width">
|
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/font-awesome/4.4.0/css/font-awesome.min.css" type="text/css">
|
|
<link rel="stylesheet" href="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/css/bootstrap.min.css" type="text/css">
|
|
<link rel="stylesheet" href="./resources/prism/prism.css" type="text/css">
|
|
<link rel="stylesheet" href="../css/ol.css" type="text/css">
|
|
<link rel="stylesheet" href="./resources/layout.css" type="text/css">
|
|
|
|
|
|
<script src="./resources/zeroclipboard/ZeroClipboard.min.js"></script>
|
|
<title>Bing Maps example</title>
|
|
</head>
|
|
<body>
|
|
|
|
<header class="navbar" role="navigation">
|
|
<div class="container" id="navbar-inner-container">
|
|
<a class="navbar-brand" href="./"><img src="./resources/logo-70x70.png"> OpenLayers 3 Examples</a>
|
|
</div>
|
|
</header>
|
|
|
|
<div class="container-fluid">
|
|
|
|
<div class="row-fluid">
|
|
<div class="span12">
|
|
<div id="map" class="map"></div>
|
|
<select id="layer-select">
|
|
<option value="Aerial">Aerial</option>
|
|
<option value="AerialWithLabels" selected>Aerial with labels</option>
|
|
<option value="Road">Road</option>
|
|
<option value="collinsBart">Collins Bart</option>
|
|
<option value="ordnanceSurvey">Ordnance Survey</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
|
|
<div class="row-fluid">
|
|
<div class="span12">
|
|
<h4 id="title">Bing Maps example</h4>
|
|
<p id="shortdesc">Example of a Bing Maps layer.</p>
|
|
<div id="docs"><p>When the Bing Maps tile service doesn't have tiles for a given resolution and region it returns "placeholder" tiles indicating that. Zoom the map beyond level 19 to see the "placeholder" tiles. If you want OpenLayers to display stretched tiles in place of "placeholder" tiles beyond zoom level 19 then set <code>maxZoom</code> to <code>19</code> in the options passed to <code>ol.source.BingMaps</code>.</p>
|
|
</div>
|
|
<div id="tags">bing, bing-maps</div>
|
|
<div id="api-links">Related API documentation: <ul class="inline"><li><a href="../apidoc/ol.Map.html" title="API documentation for ol.Map">ol.Map</a></li>,<li><a href="../apidoc/ol.View.html" title="API documentation for ol.View">ol.View</a></li>,<li><a href="../apidoc/ol.layer.Tile.html" title="API documentation for ol.layer.Tile">ol.layer.Tile</a></li>,<li><a href="../apidoc/ol.source.BingMaps.html" title="API documentation for ol.source.BingMaps">ol.source.BingMaps</a></li></ul></div>
|
|
</div>
|
|
</div>
|
|
|
|
<div class="row-fluid">
|
|
<div id="source-controls">
|
|
<a id="copy-button"><i class="fa fa-clipboard"></i> Copy</a>
|
|
<a id="jsfiddle-button"><i class="fa fa-jsfiddle"></i> Edit</a>
|
|
</div>
|
|
<form method="POST" id="jsfiddle-form" target="_blank" action="http://jsfiddle.net/api/post/jquery/1.11.0/">
|
|
<textarea class="hidden" name="js">var styles = [
|
|
'Road',
|
|
'Aerial',
|
|
'AerialWithLabels',
|
|
'collinsBart',
|
|
'ordnanceSurvey'
|
|
];
|
|
var layers = [];
|
|
var i, ii;
|
|
for (i = 0, ii = styles.length; i < ii; ++i) {
|
|
layers.push(new ol.layer.Tile({
|
|
visible: false,
|
|
preload: Infinity,
|
|
source: new ol.source.BingMaps({
|
|
key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3',
|
|
imagerySet: styles[i]
|
|
// use maxZoom 19 to see stretched tiles instead of the BingMaps
|
|
// "no photos at this zoom level" tiles
|
|
// maxZoom: 19
|
|
})
|
|
}));
|
|
}
|
|
var map = new ol.Map({
|
|
layers: layers,
|
|
// Improve user experience by loading tiles while dragging/zooming. Will make
|
|
// zooming choppy on mobile or slow devices.
|
|
loadTilesWhileInteracting: true,
|
|
target: 'map',
|
|
view: new ol.View({
|
|
center: [-6655.5402445057125, 6709968.258934638],
|
|
zoom: 13
|
|
})
|
|
});
|
|
|
|
var select = document.getElementById('layer-select');
|
|
function onChange() {
|
|
var style = select.value;
|
|
for (var i = 0, ii = layers.length; i < ii; ++i) {
|
|
layers[i].setVisible(styles[i] === style);
|
|
}
|
|
}
|
|
select.addEventListener('change', onChange);
|
|
onChange();
|
|
</textarea>
|
|
<textarea class="hidden" name="css"></textarea>
|
|
<textarea class="hidden" name="html"> <div class="row-fluid">
|
|
<div class="span12">
|
|
<div id="map" class="map"></div>
|
|
<select id="layer-select">
|
|
<option value="Aerial">Aerial</option>
|
|
<option value="AerialWithLabels" selected>Aerial with labels</option>
|
|
<option value="Road">Road</option>
|
|
<option value="collinsBart">Collins Bart</option>
|
|
<option value="ordnanceSurvey">Ordnance Survey</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
</textarea>
|
|
<input type="hidden" name="wrap" value="l">
|
|
<input type="hidden" name="resources" value="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/css/bootstrap.min.css,https://maxcdn.bootstrapcdn.com/bootstrap/3.3.4/js/bootstrap.min.js,http://openlayers.org/en/v3.9.0/css/ol.css,http://openlayers.org/en/v3.9.0/build/ol.js">
|
|
</form>
|
|
<pre><code id="example-source" class="language-markup"><!DOCTYPE html>
|
|
<html>
|
|
<head>
|
|
<title>Bing Maps 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/v3.9.0/css/ol.css" type="text/css">
|
|
<script src="http://openlayers.org/en/v3.9.0/build/ol.js"></script>
|
|
|
|
</head>
|
|
<body>
|
|
<div class="container-fluid">
|
|
|
|
<div class="row-fluid">
|
|
<div class="span12">
|
|
<div id="map" class="map"></div>
|
|
<select id="layer-select">
|
|
<option value="Aerial">Aerial</option>
|
|
<option value="AerialWithLabels" selected>Aerial with labels</option>
|
|
<option value="Road">Road</option>
|
|
<option value="collinsBart">Collins Bart</option>
|
|
<option value="ordnanceSurvey">Ordnance Survey</option>
|
|
</select>
|
|
</div>
|
|
</div>
|
|
|
|
</div>
|
|
<script>
|
|
var styles = [
|
|
'Road',
|
|
'Aerial',
|
|
'AerialWithLabels',
|
|
'collinsBart',
|
|
'ordnanceSurvey'
|
|
];
|
|
var layers = [];
|
|
var i, ii;
|
|
for (i = 0, ii = styles.length; i < ii; ++i) {
|
|
layers.push(new ol.layer.Tile({
|
|
visible: false,
|
|
preload: Infinity,
|
|
source: new ol.source.BingMaps({
|
|
key: 'Ak-dzM4wZjSqTlzveKz5u0d4IQ4bRzVI309GxmkgSVr1ewS6iPSrOvOKhA-CJlm3',
|
|
imagerySet: styles[i]
|
|
// use maxZoom 19 to see stretched tiles instead of the BingMaps
|
|
// "no photos at this zoom level" tiles
|
|
// maxZoom: 19
|
|
})
|
|
}));
|
|
}
|
|
var map = new ol.Map({
|
|
layers: layers,
|
|
// Improve user experience by loading tiles while dragging/zooming. Will make
|
|
// zooming choppy on mobile or slow devices.
|
|
loadTilesWhileInteracting: true,
|
|
target: 'map',
|
|
view: new ol.View({
|
|
center: [-6655.5402445057125, 6709968.258934638],
|
|
zoom: 13
|
|
})
|
|
});
|
|
|
|
var select = document.getElementById('layer-select');
|
|
function onChange() {
|
|
var style = select.value;
|
|
for (var i = 0, ii = layers.length; i < ii; ++i) {
|
|
layers[i].setVisible(styles[i] === style);
|
|
}
|
|
}
|
|
select.addEventListener('change', onChange);
|
|
onChange();
|
|
|
|
</script>
|
|
</body>
|
|
</html></code></pre>
|
|
</div>
|
|
</div>
|
|
|
|
<script src="https://code.jquery.com/jquery-1.11.2.min.js"></script>
|
|
<script src="https://maxcdn.bootstrapcdn.com/bootstrap/3.3.5/js/bootstrap.min.js"></script>
|
|
<script src="./resources/common.js"></script>
|
|
<script src="./resources/prism/prism.min.js"></script>
|
|
<script src="loader.js?id=bing-maps"></script>
|
|
|
|
</body>
|
|
</html>
|