Add geopo to timing points master
[bus.git] / openlayers / examples / strategy-paging.html
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
<html xmlns="http://www.w3.org/1999/xhtml">
    <head>
        <title>OpenLayers Paging Strategy Example</title>
        <link rel="stylesheet" href="../theme/default/style.css" type="text/css" />
        <link rel="stylesheet" href="style.css" type="text/css" />
        <script src="../lib/OpenLayers.js"></script>
        <script type="text/javascript">
            var map, photos, paging;
            OpenLayers.ProxyHost = (window.location.host == "localhost") ?
                "/cgi-bin/proxy.cgi?url=" : "proxy.cgi?url=";
        
            function init() {
                map = new OpenLayers.Map('map', {
                    restrictedExtent: new OpenLayers.Bounds(-180, -90, 180, 90)
                });
                var base = new OpenLayers.Layer.WMS("Imagery", 
                    ["http://t1.hypercube.telascience.org/tiles?",
                     "http://t2.hypercube.telascience.org/tiles?",
                     "http://t3.hypercube.telascience.org/tiles?",
                     "http://t4.hypercube.telascience.org/tiles?"], 
                    {layers: 'landsat7'}
                );
 
                var style = new OpenLayers.Style({
                    externalGraphic: "${img_url}",
                    pointRadius: 30
                });
 
                paging = new OpenLayers.Strategy.Paging();
 
                photos = new OpenLayers.Layer.Vector("Photos", {
                    strategies: [new OpenLayers.Strategy.Fixed(), paging],
                    protocol: new OpenLayers.Protocol.HTTP({
                        url: "http://labs.metacarta.com/flickrbrowse/flickr.py/flickr",
                        params: {
                            format: "WFS",
                            sort: "interestingness-desc",
                            service: "WFS",
                            request: "GetFeatures",
                            srs: "EPSG:4326",
                            maxfeatures: 100,
                            bbox: [-180, -90, 180, 90]
                        },
                        format: new OpenLayers.Format.GML()
                    }),
                    styleMap: new OpenLayers.StyleMap(style)
                });
 
                map.addLayers([base, photos]);
                photos.events.on({"featuresadded": updateButtons});
                map.setCenter(new OpenLayers.LonLat(0, 0), 1);
            }
            
            function updateButtons() {
                document.getElementById("prev").disabled = (paging.pageNum() < 1);
                document.getElementById("next").disabled = (paging.pageNum() >= paging.pageCount() - 1);
                document.getElementById("num").innerHTML = paging.pageNum() + 1;
                document.getElementById("count").innerHTML = paging.pageCount();
            }
        </script>
    </head>
    <body onload="init()">
        <h1 id="title">Paging Strategy Example</h1>
        <p id="shortdesc">
            Uses a paging strategy to cache large batches of features and render a page at a time.
        </p>
        <div id="map" class="smallmap"></div>
        Displaying page <span id="num">0</span> of <span id="count">...</span>
        <button id="prev" disabled="disabled" onclick="paging.pagePrevious();">previous</button>
        <button id="next" disabled="disabled" onclick="paging.pageNext();">next</button>
        <br /><br />
        <div id="docs">
            <p>The Paging strategy lets you apply client side paging for protocols
            that do not support paging on the server.  In this case, the protocol requests a
            batch of 100 features, the strategy caches those and supplies a single
            page at a time to the layer.</p>
        </div>
    </body>
</html>