View difference between Paste ID: TqjE4CVm and ruB9urb4
SHOW: | | - or go back to the newest paste.
1
var overlay;
2
USGSOverlay.prototype = new google.maps.OverlayView();
3
var info = new google.maps.InfoWindow();
4
5
function initialize() {
6
  var mapOptions = { 
7
    zoom: 0,
8
disableDefaultUI: true,
9
streetViewControl: false,
10
navigationControl: false,
11
zoomControl: false,
12
scaleControl: false,
13
scrollwheel: false,
14
disableDoubleClickZoom: true,
15
    center: new google.maps.LatLng(28.70, -127.50),
16
    mapTypeId: google.maps.MapTypeId.ROADMAP
17
	
18
  };
19
20
  var map = new google.maps.Map(document.getElementById('map-canvas'), mapOptions);
21
 
22
var marker = new google.maps.Marker({
23
    position: map.getCenter(),
24
    map: map
25
  });
26
27
  var swBound = new google.maps.LatLng(62.281819, -150.287132);
28
  var neBound = new google.maps.LatLng(62.400471, -150.005608);
29
  var bounds = new google.maps.LatLngBounds(swBound, neBound);
30
    var allowedBounds = new google.maps.LatLngBounds(
31
                  new google.maps.LatLng(28.70, -127.50),
32
                  new google.maps.LatLng(48.85, -55.90)
33
                );
34
				
35
                var boundLimits = {
36
                    maxLat : allowedBounds.getNorthEast().lat(),
37
                    maxLng : allowedBounds.getNorthEast().lng(),
38
                    minLat : allowedBounds.getSouthWest().lat(),
39
                    minLng : allowedBounds.getSouthWest().lng()
40
                };
41
42
                var lastValidCenter = map.getCenter();
43
                var newLat, newLng;
44
                google.maps.event.addListener(map, 'center_changed', function() {
45
                    center = map.getCenter();
46
                    if (allowedBounds.contains(center)) {
47
                        
48
                        lastValidCenter = map.getCenter();
49
                        return;
50
                    }
51
                    newLat = lastValidCenter.lat();
52
                    newLng = lastValidCenter.lng();
53
                    if(center.lng() > boundLimits.minLng && center.lng() < boundLimits.maxLng){
54
                        newLng = center.lng();
55
                    }
56
                    if(center.lat() > boundLimits.minLat && center.lat() < boundLimits.maxLat){
57
                        newLat = center.lat();
58
                    }
59
                    map.panTo(new google.maps.LatLng(newLat, newLng));
60
					
61
                });
62
63
  var srcImage = 'assets/pics/floorImage.jpg';
64
65
  overlay = new USGSOverlay(bounds, srcImage, map);
66
}
67
68-
function loadScript() {
68+
69-
	  var script = document.createElement('script');
69+
70-
	  script.type = 'text/javascript';
70+
71-
	  script.src = 'https://maps.googleapis.com/maps/api/js?v=3.exp&' +
71+
72-
	      'callback=initialize';
72+
73-
	  document.body.appendChild(script);
73+
74
	  this.div_ = null;
75
76-
window.onload = loadScript;
76+
77
	}
78
79
	USGSOverlay.prototype.onAdd = function() {
80
81
	  var div = document.createElement('div');
82
	  div.style.borderStyle = '0';
83
	  div.style.borderWidth = '100%';
84
	  div.style.position = 'b';
85
86
	  var img = document.createElement('img');
87
	  img.src = this.image_;
88
	  img.style.width = '800px';
89
	  img.style.height = '500px';
90
	  img.style.position = 'absolute';
91
	  div.appendChild(img);
92
93
	  this.div_ = div;
94
95
	  var panes = this.getPanes();
96
	  panes.overlayLayer.appendChild(div);
97
	};
98
99
	USGSOverlay.prototype.draw = function() {
100
101
	  var overlayProjection = this.getProjection();
102
103
	  var sw = overlayProjection.fromLatLngToDivPixel(this.bounds_.getSouthWest());
104
	  var ne = overlayProjection.fromLatLngToDivPixel(this.bounds_.getNorthEast());
105
106
	  var div = this.div_;
107
	  div.style.left = sw.x + '10';
108
	  div.style.top = ne.y + '10';
109
	  div.style.width = (ne.x - sw.x) + '';
110
	  div.style.height = (sw.y - ne.y) + '50';
111
	};
112
113
	USGSOverlay.prototype.onRemove = function() {
114
	  this.div_.parentNode.removeChild(this.div_);
115
	  this.div_ = null;
116
	};
117
	
118
119
	google.maps.event.addDomListener(window, 'load', initialize);