add mobile-layers example, demonstrating that data from various layer/format types can be displayed on mobile, p=cmoullet, r=me (closes #3223)
git-svn-id: http://svn.openlayers.org/trunk/openlayers@11844 dc9f47b5-9b13-0410-9fdd-eb0c1a62fdaf
This commit is contained in:
98
examples/mobile-layers.html
Normal file
98
examples/mobile-layers.html
Normal file
@@ -0,0 +1,98 @@
|
||||
<!DOCTYPE html>
|
||||
<html>
|
||||
<head>
|
||||
<title>OpenLayers Mobile Layers</title>
|
||||
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
|
||||
<meta name="viewport" content="width=device-width, user-scalable=no, initial-scale=1.0, maximum-scale=1.0;">
|
||||
<meta name="apple-mobile-web-app-capable" content="yes">
|
||||
<link rel="stylesheet" href="style.mobile.css" type="text/css">
|
||||
<script src="../lib/OpenLayers.js"></script>
|
||||
<script src="mobile-layers.js"></script>
|
||||
<style>
|
||||
html, body {
|
||||
margin: 0;
|
||||
padding: 0;
|
||||
height: 100%;
|
||||
width: 100%;
|
||||
}
|
||||
|
||||
@media only screen and (max-width: 600px) {
|
||||
html, body {
|
||||
height: 117%;
|
||||
}
|
||||
}
|
||||
|
||||
#map {
|
||||
width: 100%;
|
||||
position: relative;
|
||||
height: 100%;
|
||||
}
|
||||
|
||||
.olControlAttribution {
|
||||
position: absolute;
|
||||
font-size: 10px;
|
||||
bottom: 0 !important;
|
||||
right: 0 !important;
|
||||
background: rgba(0, 0, 0, 0.1);
|
||||
font-family: Arial;
|
||||
padding: 2px 4px;
|
||||
border-radius: 5px 0 0 0;
|
||||
}
|
||||
|
||||
div.olControlZoomPanel .olControlZoomInItemInactive,
|
||||
div.olControlZoomPanel .olControlZoomOutItemInactive {
|
||||
background: rgba(0, 0, 0, 0.2);
|
||||
position: absolute;
|
||||
}
|
||||
|
||||
div.olControlZoomPanel .olControlZoomInItemInactive {
|
||||
border-radius: 5px 5px 0 0;
|
||||
}
|
||||
|
||||
div.olControlZoomPanel .olControlZoomOutItemInactive {
|
||||
border-radius: 0 0 5px 5px;
|
||||
top: 37px;
|
||||
}
|
||||
|
||||
div.olControlZoomPanel .olControlZoomOutItemInactive:after,
|
||||
div.olControlZoomPanel .olControlZoomInItemInactive:after {
|
||||
font-weight: bold;
|
||||
content: '+';
|
||||
font-size: 36px;
|
||||
padding: 7px;
|
||||
z-index: 2000;
|
||||
color: #fff;
|
||||
line-height: 1em;
|
||||
}
|
||||
|
||||
div.olControlZoomPanel .olControlZoomOutItemInactive:after {
|
||||
content: '–';
|
||||
line-height: 0.9em;
|
||||
padding: 0 8px;
|
||||
}
|
||||
|
||||
div.olControlZoomPanel .olControlZoomToMaxExtentItemInactive {
|
||||
display: none;
|
||||
}
|
||||
|
||||
#title, #tags, #shortdesc {
|
||||
display: none;
|
||||
}
|
||||
</style>
|
||||
</head>
|
||||
<body>
|
||||
<h1 id="title">Mobile example with various layer types</h1>
|
||||
|
||||
<div id="tags">
|
||||
mobile, WMS, WFS, KML
|
||||
</div>
|
||||
<p id="shortdesc">
|
||||
A mobile example displaying various layer types: WMS, WFS, KML.
|
||||
</p>
|
||||
|
||||
<div id="map"></div>
|
||||
<script>
|
||||
init();
|
||||
</script>
|
||||
</body>
|
||||
</html>
|
||||
72
examples/mobile-layers.js
Normal file
72
examples/mobile-layers.js
Normal file
@@ -0,0 +1,72 @@
|
||||
// initialize map when page ready
|
||||
var map;
|
||||
|
||||
// Get rid of address bar on iphone/ipod
|
||||
var fixSize = function() {
|
||||
window.scrollTo(0, 0);
|
||||
document.body.style.height = '100%';
|
||||
if (!(/(iphone|ipod)/.test(navigator.userAgent.toLowerCase()))) {
|
||||
if (document.body.parentNode) {
|
||||
document.body.parentNode.style.height = '100%';
|
||||
}
|
||||
}
|
||||
};
|
||||
setTimeout(fixSize, 700);
|
||||
setTimeout(fixSize, 1500);
|
||||
|
||||
// allow testing of specific renderers via "?renderer=Canvas", etc
|
||||
var renderer = OpenLayers.Util.getParameters(window.location.href).renderer;
|
||||
renderer = (renderer) ? [renderer] : OpenLayers.Layer.Vector.prototype.renderers;
|
||||
|
||||
OpenLayers.ProxyHost = "proxy.cgi?url=";
|
||||
|
||||
function init() {
|
||||
|
||||
map = new OpenLayers.Map({
|
||||
div: "map",
|
||||
theme: null,
|
||||
controls: [
|
||||
new OpenLayers.Control.Attribution(),
|
||||
new OpenLayers.Control.TouchNavigation({
|
||||
dragPanOptions: {
|
||||
interval: 100,
|
||||
enableKinetic: true
|
||||
}
|
||||
}),
|
||||
new OpenLayers.Control.ZoomPanel()
|
||||
]
|
||||
});
|
||||
|
||||
var wms = new OpenLayers.Layer.WMS("OpenLayers WMS",
|
||||
"http://vmap0.tiles.osgeo.org/wms/vmap0",
|
||||
{layers: 'basic'},
|
||||
{isBaseLayer: true, transitionEffect: 'resize'}
|
||||
)
|
||||
|
||||
var kml = new OpenLayers.Layer.Vector("KML", {
|
||||
projection: map.displayProjection,
|
||||
strategies: [new OpenLayers.Strategy.Fixed()],
|
||||
protocol: new OpenLayers.Protocol.HTTP({
|
||||
url: "kml/sundials.kml",
|
||||
format: new OpenLayers.Format.KML({
|
||||
extractStyles: true,
|
||||
extractAttributes: true
|
||||
})
|
||||
}),
|
||||
renderers: renderer
|
||||
});
|
||||
|
||||
var wfs = new OpenLayers.Layer.Vector("States", {
|
||||
strategies: [new OpenLayers.Strategy.Fixed()],
|
||||
protocol: new OpenLayers.Protocol.WFS({
|
||||
url: "http://demo.opengeo.org/geoserver/wfs",
|
||||
featureType: "states",
|
||||
featureNS: "http://www.openplans.org/topp"
|
||||
}),
|
||||
renderers: renderer
|
||||
});
|
||||
|
||||
map.addLayers([wms, wfs, kml]);
|
||||
|
||||
map.setCenter(new OpenLayers.LonLat(-104, 42), 3);
|
||||
};
|
||||
Reference in New Issue
Block a user