1 | <!DOCTYPE HTML>
|
---|
2 | <html>
|
---|
3 |
|
---|
4 | <head>
|
---|
5 | <title>BNC OpenStreetMap View</title>
|
---|
6 | <style type="text/css">
|
---|
7 | html, body, #basicMap {
|
---|
8 | width: 100%;
|
---|
9 | height: 100%;
|
---|
10 | margin: 0;
|
---|
11 | }
|
---|
12 | </style>
|
---|
13 |
|
---|
14 | <script src="http://openlayers.org/api/OpenLayers.js" ></script>
|
---|
15 |
|
---|
16 | <script>
|
---|
17 | var map;
|
---|
18 | var markers;
|
---|
19 | var marker;
|
---|
20 | var icon;
|
---|
21 | var traceIcon;
|
---|
22 | var fromProjection;
|
---|
23 | var toProjection;
|
---|
24 | var useTrace;
|
---|
25 | var zoom;
|
---|
26 |
|
---|
27 | OpenLayers.Layer.OSM.StreetBrowser = OpenLayers.Class(OpenLayers.Layer.OSM, {
|
---|
28 | /**
|
---|
29 | * Constructor: OpenLayers.Layer.OSM.StreetBrowser
|
---|
30 | *
|
---|
31 | * Parameters:
|
---|
32 | * name - {String}
|
---|
33 | * options - {Object} Hashtable of extra options to tag onto the layer
|
---|
34 | */
|
---|
35 | initialize: function(name, options) {
|
---|
36 | var url = [
|
---|
37 | "http://tiles-base.openstreetbrowser.org/tiles/basemap_base/${z}/${x}/${y}.png"
|
---|
38 | ];
|
---|
39 | options = OpenLayers.Util.extend({
|
---|
40 | numZoomLevels: 18,
|
---|
41 | buffer: 0,
|
---|
42 | transitionEffect: "resize"
|
---|
43 | }, options);
|
---|
44 | var newArguments = [name, url, options];
|
---|
45 | OpenLayers.Layer.XYZ.prototype.initialize.apply(this, newArguments);
|
---|
46 | },
|
---|
47 |
|
---|
48 | CLASS_NAME: "OpenLayers.Layer.OSM.StreetBrowser"
|
---|
49 | });
|
---|
50 |
|
---|
51 | function initialize(lat, lon, trace) {
|
---|
52 | useTrace = trace;
|
---|
53 |
|
---|
54 | map = new OpenLayers.Map("basicMap",
|
---|
55 | {controls:[
|
---|
56 | new OpenLayers.Control.Navigation(),
|
---|
57 | new OpenLayers.Control.PanZoomBar()]});
|
---|
58 | fromProjection = new OpenLayers.Projection("EPSG:4326"); // WGS 1984
|
---|
59 | toProjection = new OpenLayers.Projection("EPSG:900913"); // Spherical Mercator
|
---|
60 | zoom = 0;
|
---|
61 |
|
---|
62 | var mapnik = new OpenLayers.Layer.OSM.StreetBrowser();
|
---|
63 | var position = new OpenLayers.LonLat(lon, lat).transform(fromProjection, toProjection);
|
---|
64 |
|
---|
65 | map.addLayer(mapnik);
|
---|
66 |
|
---|
67 | var size = new OpenLayers.Size(40,40);
|
---|
68 | var offset = new OpenLayers.Pixel(-size.w/2, -size.h/2);
|
---|
69 | icon = new OpenLayers.Icon("qrc:///map/crosshair.png", size, offset);
|
---|
70 |
|
---|
71 | var sizeT = new OpenLayers.Size(2,2);
|
---|
72 | var offsetT = new OpenLayers.Pixel(-sizeT.w/2, -13);
|
---|
73 | traceIcon = new OpenLayers.Icon("qrc:///map/reddot.png", sizeT, offsetT);
|
---|
74 |
|
---|
75 | markers = new OpenLayers.Layer.Markers("Markers");
|
---|
76 | marker = new OpenLayers.Marker(position, icon);
|
---|
77 | markers.addMarker(marker);
|
---|
78 |
|
---|
79 | map.addLayer(markers);
|
---|
80 |
|
---|
81 | map.setCenter(position, 3);
|
---|
82 | }
|
---|
83 |
|
---|
84 | function gotoLocation(lat, lon) {
|
---|
85 | var position = new OpenLayers.LonLat(lon, lat).transform(fromProjection, toProjection);
|
---|
86 | if (zoom == 0) {
|
---|
87 | zoom = 15;
|
---|
88 | map.setCenter(position, zoom);
|
---|
89 | }
|
---|
90 | else {
|
---|
91 | map.setCenter(position);
|
---|
92 | }
|
---|
93 | markers.removeMarker(marker);
|
---|
94 | marker = new OpenLayers.Marker(position, icon);
|
---|
95 | markers.addMarker(marker);
|
---|
96 | if (useTrace == 1) {
|
---|
97 | var trace = new OpenLayers.Marker(position, traceIcon.clone());
|
---|
98 | markers.addMarker(trace);
|
---|
99 | }
|
---|
100 | }
|
---|
101 |
|
---|
102 | </script>
|
---|
103 |
|
---|
104 | </head>
|
---|
105 |
|
---|
106 | <body>
|
---|
107 | <div id="basicMap"></div>
|
---|
108 | </body>
|
---|
109 |
|
---|
110 | </html>
|
---|