diff options
Diffstat (limited to 'misc/openlayers/examples/utfgrid-geography-class.js')
-rw-r--r-- | misc/openlayers/examples/utfgrid-geography-class.js | 62 |
1 files changed, 62 insertions, 0 deletions
diff --git a/misc/openlayers/examples/utfgrid-geography-class.js b/misc/openlayers/examples/utfgrid-geography-class.js new file mode 100644 index 0000000..9377df6 --- /dev/null +++ b/misc/openlayers/examples/utfgrid-geography-class.js @@ -0,0 +1,62 @@ +var osm = new OpenLayers.Layer.XYZ( + "MapQuest OSM", + [ + "http://otile1.mqcdn.com/tiles/1.0.0/osm/${z}/${x}/${y}.png", + "http://otile2.mqcdn.com/tiles/1.0.0/osm/${z}/${x}/${y}.png", + "http://otile3.mqcdn.com/tiles/1.0.0/osm/${z}/${x}/${y}.png", + "http://otile4.mqcdn.com/tiles/1.0.0/osm/${z}/${x}/${y}.png" + ], + {transitionEffect: "resize", wrapDateLine: true} +); + +var utfgrid = new OpenLayers.Layer.UTFGrid({ + url: "utfgrid/geography-class/${z}/${x}/${y}.grid.json", + utfgridResolution: 4, // default is 2 + displayInLayerSwitcher: false +}); + +var map = new OpenLayers.Map({ + div: "map", + projection: "EPSG:900913", + numZoomLevels: 3, + layers: [osm, utfgrid], + controls: [ + new OpenLayers.Control.Navigation({ + dragPanOptions: { + enableKinetic: true + } + }), + new OpenLayers.Control.Zoom() + ], + center: [0, 0], + zoom: 1 +}); + +var output = document.getElementById("output"); +var flag = document.getElementById("flag"); + +var callback = function(infoLookup, loc, pixel) { + var msg = ""; + if (infoLookup) { + var info; + for (var idx in infoLookup) { + // idx can be used to retrieve layer from map.layers[idx] + info = infoLookup[idx]; + if (info && info.data) { + output.innerHTML = info.data.admin; + flag.innerHTML = "<img src='data:image/png;base64," + info.data.flag_png + "'>"; + flag.style.left = (pixel.x + 15) + "px"; + flag.style.top = (pixel.y + 15) + "px"; + } else { + output.innerHTML = flag.innerHTML = " "; + } + } + } +}; + +var control = new OpenLayers.Control.UTFGrid({ + callback: callback, + handlerMode: "move" +}); + +map.addControl(control); |