1 | <html xmlns="http://www.w3.org/1999/xhtml"> |
---|
2 | <head> |
---|
3 | <title>Open Space Tutorial - Example 1</title> |
---|
4 | <script type="text/javascript" src="http://openspace.ordnancesurvey.co.uk/osmapapi/openspace.js?key=413F829AAE11F96EE0405F0AF060395F"></script> |
---|
5 | |
---|
6 | <script src="yahoo.js" type="text/javascript"></script> |
---|
7 | <script src="dom.js" type="text/javascript"></script> |
---|
8 | <script src="event.js" type="text/javascript"></script> |
---|
9 | <script src="jsr_class.js" type="text/javascript"></script> |
---|
10 | <script src="jscoord-1.1.1.js" type="text/javascript"></script> |
---|
11 | <script src="prototype.js" type="text/javascript"></script> |
---|
12 | </head> |
---|
13 | <body onload="init()"> |
---|
14 | |
---|
15 | <script type="text/javascript"> |
---|
16 | <!-- |
---|
17 | |
---|
18 | var osMap; |
---|
19 | var markers; |
---|
20 | var url = "/cgi/get-postcodes.fcgi"; |
---|
21 | var grid = "osgb"; |
---|
22 | |
---|
23 | var sources = new Array(1); |
---|
24 | sources[0] = 'this site'; |
---|
25 | sources[1] = '<a href="http://www.freethepostcode.org/">freethepostcode.org</a>'; |
---|
26 | sources[2] = '<a href="http://www.npemap.org.uk">npemap</a>'; |
---|
27 | |
---|
28 | var successHandler = function(o){ |
---|
29 | eval(o.responseText); |
---|
30 | } |
---|
31 | |
---|
32 | var failHander = function(o) { |
---|
33 | // Don't do anything |
---|
34 | $('spinner').innerHTML = '<p class="error">Problem showing existing data.</p>'; |
---|
35 | } |
---|
36 | |
---|
37 | function drawExisting() { |
---|
38 | // Clear all our makers |
---|
39 | for(var marker in osMap.markers) { |
---|
40 | markers.removeMarker(marker); |
---|
41 | alert(marker); |
---|
42 | } |
---|
43 | markers.clearMarkers(); |
---|
44 | |
---|
45 | // Only display at zoom levels 8+ |
---|
46 | if(osMap.zoom < 8) { |
---|
47 | return; |
---|
48 | } |
---|
49 | |
---|
50 | var bounds = osMap.calculateBounds(); |
---|
51 | var params = "mineasting=" + bounds.left + "&maxeasting=" + bounds.right + "&minnorthing=" + bounds.bottom + "&maxnorthing=" + bounds.top + "&grid=" + grid; |
---|
52 | $('spinner').innerHTML = '<p>Fetching postcodes, please wait</p>'; |
---|
53 | |
---|
54 | var myAjax = new Ajax.Request(url, { |
---|
55 | method: 'get', |
---|
56 | parameters: params, |
---|
57 | onComplete: successHandler, |
---|
58 | onFailure: failHander |
---|
59 | }); |
---|
60 | } |
---|
61 | |
---|
62 | function addNew(e) { |
---|
63 | var en = |
---|
64 | osMap.getLonLatFromViewPortPx( osMap.events.getMousePosition(e) ); |
---|
65 | var easting = en.lon; |
---|
66 | var northing = en.lat; |
---|
67 | alert("e=" + easting + " n=" + northing); |
---|
68 | } |
---|
69 | |
---|
70 | function init() |
---|
71 | { |
---|
72 | osMap = new OpenSpace.Map('map'); |
---|
73 | osMap.setCenter(new OpenSpace.MapPoint(438760, 114760), 8); |
---|
74 | |
---|
75 | markers = new OpenLayers.Layer.Markers("Markers"); |
---|
76 | osMap.addLayer(markers); |
---|
77 | |
---|
78 | osMap.events.register("moveend", osMap, drawExisting); |
---|
79 | osMap.events.register("zoomend", osMap, drawExisting); |
---|
80 | osMap.events.register("click", osMap, addNew); |
---|
81 | |
---|
82 | drawExisting(); |
---|
83 | } |
---|
84 | |
---|
85 | function addMarker(postcode, easting, northing, others ) { |
---|
86 | var id = others[0]; |
---|
87 | var source = others[1]; |
---|
88 | |
---|
89 | var pos = new OpenSpace.MapPoint(easting, northing); |
---|
90 | var content = "<div><b>Postcode:</b> " + postcode + "<br /><b>Location:</b> " + easting + ", " + northing + "<br /><b>Source:</b> " + sources[source] + "<br /><b>ID:</b> " + id + "</div>"; |
---|
91 | |
---|
92 | var marker = osMap.createMarker(pos, null, content); |
---|
93 | markers.addMarker(marker); |
---|
94 | } |
---|
95 | |
---|
96 | function completeMarkers() { |
---|
97 | $('spinner').innerHTML = " "; |
---|
98 | } |
---|
99 | |
---|
100 | // --> |
---|
101 | </script> |
---|
102 | |
---|
103 | <h1>Displaying a marker on a map</h1> |
---|
104 | |
---|
105 | <div id="map" style="width: 800px; height: 500px; border: 1px solid black;"></div> |
---|
106 | |
---|
107 | <div id="spinner" /> |
---|
108 | |
---|
109 | </body> |
---|
110 | </html> |
---|