PageSourceSearch

https://www.garrisonbros.com/wp-content/plugins/gbbui/elementor/widget-area-map/script.js?nc=&ver=1.1790920531

js garrisonbros.com collected 2026-10-02 06:19:11 UTC 20,710 bytes, 543 lines download raw bytes

1var TOURUTILS = {
2	doAnimation: function(map, currentMapOptions, newMapOptions, duration){
3	   var self = this;
4		
5       var mapTween = new TWEEN.Tween(currentMapOptions) // Create a new tween that modifies 'cameraOptions'.
6       .to(newMapOptions, duration) // Move to destination in 15 second.
7       .easing(TWEEN.Easing.Quadratic.Out) // Use an easing function to make the animation smooth.
8       .onUpdate(() => {
9        	map.moveCamera(currentMapOptions);
10       })
11       .start();
12		
13		function animate(time) {
14			requestAnimationFrame(animate);
15			TWEEN.update(time);
16		}
17		requestAnimationFrame(animate);
18    },
19}
20
21class LANDPTour {
22	
23	constructor(options) {
24		this.options = options;
25		this.map = {};
26		this.markers = [];
27		this.infoWindows = [];
28		this.mapLoaded = false;
29		this.zoom = 10;
30		this.mapId = "14925012e1104176";
31		this.currentMapOptions = {};
32		this.cameraOptions = {
33		  tilt: 45,
34		  heading: 0,
35		  zoom: this.zoom,
36		  center: {lat: this.options.gmcenteron_lat, lng: this.options.gmcenteron_lng},
37		}
38		
39	}
40
41	sayHi() {
42		alert(this.options);
43	}
44	
45	init() {
46		// Styles a map in night mode.
47		var cameraOptions = this.cameraOptions;
48		const mapOptions = {
49		 scrollwheel: false,
50         streetViewControl: false,
51		 zoomControl:true,
52		 zoomControlOptions: {
53			 style: google.maps.ZoomControlStyle.SMALL,
54		 	 position: google.maps.ControlPosition.RIGHT
55		 },
56         fullscreenControl: false,
57		    mapTypeControlOptions: {
58            mapTypeIds: []
59         },
60		  ...cameraOptions,
61		  mapId: this.options.mapId,
62		};
63		this.map = new google.maps.Map(document.getElementById(this.options.container), mapOptions);
64		this.mapLoaded = true;
65		this.currentMapOptions = { tilt:this.map.getTilt(), heading: this.map.getHeading(), zoom: this.options.zoom, center: this.map.getCenter()};
66		var mapControlDiv = document.createElement('div');
67		var refreshControl = this.initRefreshControl(mapControlDiv, this.map);
68		mapControlDiv.index = 1;
69		//this.map.controls[google.maps.ControlPosition.TOP_RIGHT].push(mapControlDiv);
70		if (this.gmlist == 'yes') {
71			//this.map.controls[google.maps.ControlPosition.TOP_LEFT].push(mapControlDiv);
72		}
73		//ADD MARKERS
74		var l;
75		var contentString, infowindow, icon, pin, marker;
76		for (l = 0; l < this.options.locations.length; l++) {
77			//INFO WINDOW
78			//console.info(this.options.locations[l].poi_color);
79			contentString = '';
80			//contentString += '<div class="gmap-iw">';
81			//contentString += '<div class="gmap-iw-img-holder" style="background:url('+this.options.locations[l].poi_image+') no-repeat center center / cover">';
82			
83			//contentString += '</div>';
84			contentString += '<div class="map-details-image" style="background-image:url(' + this.options.locations[l].poi_image + ');"></div>';
85			contentString += '<h4 class="gmap-iw-heading" style="' + this.options.locations[l].poi_color + '"><a href="https://www.google.com/maps/place/' + encodeURIComponent(this.options.locations[l].poi_address + ' ' + this.options.locations[l].poi_city_state_zip) + '" style="color: #1A4C6D;">' + this.options.locations[l].poi_name + '</a></h4>';
86			contentString += '<div class="gmap-iw-body">';
87			if (this.options.locations[l].poi_description) {
88				contentString += '<p>' + this.options.locations[l].poi_description + '</p>';
89			};
90			if (this.options.locations[l].add_address == 'yes') {
91				contentString += '<h6>' + this.options.locations[l].poi_address + '<br>' + this.options.locations[l].poi_city_state_zip + '</h6>';
92			};
93            if (this.options.locations[l].add_address == 'yes') {
94				contentString += '<h6><a style="color:#26765B;" href="https://www.google.com/maps/place/' + encodeURIComponent(this.options.locations[l].poi_address + ' ' + this.options.locations[l].poi_city_state_zip) + '">Directions</a></h6>';
95			};
96			contentString += '</div>';
97			contentString += '</div>';
98			var infowindow = new google.maps.InfoWindow({
99				content: contentString,
100				disableAutoPan: true
101			});
102			//pin
103			//var poi_ico_style = "M50,0C29.4,0,12.7,16.9,12.5,37.8c0.1,7.3,2.2,14.2,5.9,19.9l28.7,40.1c0.8,1.5,1.9,2.2,2.9,2.2l0,0c1.1,0,2.1-0.7,2.9-2.2l28.6-40.1c3.7-5.8,5.9-12.6,5.9-19.9C87.3,16.9,70.6,0,50,0z M50,53.9c-9.1,0-16.4-7.3-16.4-16.4S40.9,21.1,50,21.1s16.4,7.3,16.4,16.4S59.1,53.9,50,53.9z";
104			var poi_ico_style = "M 25,50a 25,25 0 1,1 50,0a 25,25 0 1,1 -50,0";
105			//console.info(this.options.locations[l].poi_ico_style);
106			
107			switch(this.options.locations[l].poi_ico_style){
108				case 'apple':
109				   	poi_ico_style = "M350.85 129c25.97 4.67 47.27 18.67 63.92 42 14.65 20.67 24.64 46.67 29.96 78 4.67 28.67 4.32 57.33-1 86-7.99 47.33-23.97 87-47.94 119-28.64 38.67-64.59 58-107.87 58-10.66 0-22.3-3.33-34.96-10-8.66-5.33-18.31-8-28.97-8s-20.3 2.67-28.97 8c-12.66 6.67-24.3 10-34.96 10-43.28 0-79.23-19.33-107.87-58-23.97-32-39.95-71.67-47.94-119-5.32-28.67-5.67-57.33-1-86 5.32-31.33 15.31-57.33 29.96-78 16.65-23.33 37.95-37.33 63.92-42 15.98-2.67 37.95-.33 65.92 7 23.97 6.67 44.28 14.67 60.93 24 16.65-9.33 36.96-17.33 60.93-24 27.98-7.33 49.96-9.67 65.94-7zm-54.94-41c-9.32 8.67-21.65 15-36.96 19-10.66 3.33-22.3 5-34.96 5l-14.98-1c-1.33-9.33-1.33-20 0-32 2.67-24 10.32-42.33 22.97-55 9.32-8.67 21.65-15 36.96-19 10.66-3.33 22.3-5 34.96-5l14.98 1 1 15c0 12.67-1.67 24.33-4.99 35-3.99 15.33-10.31 27.67-18.98 37z";
110				   	break;
111				case 'visit':
112					poi_ico_style = "M259.3 17.8L194 150.2 47.9 171.5c-26.2 3.8-36.7 36.1-17.7 54.6l105.7 103-25 145.5c-4.5 26.3 23.2 46 46.4 33.7L288 439.6l130.7 68.7c23.2 12.2 50.9-7.4 46.4-33.7l-25-145.5 105.7-103c19
112-18.5 8.5-50.8-17.7-54.6L382 150.2 316.7 17.8c-11.7-23.6-45.6-23.9-57.4 0z";
113					break;
114				case 'home':
115					poi_ico_style = "M64 311.4V496c0 8.8 7.2 16 16 16h416c8.8 0 16-7.2 16-16V311.4c-6.7-5.5-44.7-38.3-224-196.4C107.9 273.9 70.4 306.1 64 311.4zm314.1-26.3c27.6 23 29.1 64.2 4.5 89.1l-84.7 85.6c-5.5 5.5-14.3 5.5-19.8 0l-84.7-85.6c-24.6-24.9-23.2-66.1 4.3-89.1 24-20 59.7-16.4 81.6 5.8l8.6 8.7 8.6-8.7c22-22.2 57.7-25.8 81.6-5.8zM64 311.4v-.3s-2.7 2.5 0 .3zm506.7-75.1L512 184.5V48c0-8.8-7.2-16-16-16h-64c-8.8 0-16 7.2-16 16v51.7L314.7 10.3c-15.3-13.7-38.2-13.7-53.5 0l-256 226c-6.6 5.9-7.1 16-1.2 22.6l21.4 23.8c5.9 6.6 16 7.1 22.6 1.2L277.4 81.7c6-5.3 15.1-5.3 21.2 0L527.9 284c6.6 5.9 16.7 5.4 22.6-1.2l21.4-23.8c5.9-6.7 5.4-16.8-1.2-22.7zM512 311.1v.3c2.9 2.3 0-.3 0-.3z";
116					break;
117				default:
118				   	poi_ico_style = "M 25,50a 25,25 0 1,1 50,0a 25,25 0 1,1 -50,0";
119			}
120			var divby = 100;
121			var poi_ico_scolor = 'rgba(0,0,0,0)';
122			if (this.options.locations[l].poi_ico_stroke_color) {
123				poi_ico_scolor = this.options.locations[l].poi_ico_stroke_color;
124			}
125			var poi_ico_sweight = 0;
126			if (this.options.poi_ico_stroke_sweight_size) {
127				poi_ico_sweight = this.options.locations[l].poi_ico_stroke_sweight_size;
128			}
129			var poi_icon_scale = 40/divby;
130			if (this.options.locations[l].poi_icon_scale_size) {
131				poi_icon_scale = (this.options.locations[l].poi_icon_scale_size) / divby;
132			}
133			icon = {
134				path: poi_ico_style,
135				fillColor: this.options.locations[l].poi_color,
136				fillOpacity: 1,
137				scale: poi_icon_scale,
138				strokeColor: this.options.locations[l].poi_color,
139				strokeWeight: poi_ico_sweight
140			};
141			var scaledSizew = 55;
142			var scaledSizeh = 55;
143			var animation = false;
144			if (this.options.locations[l].poi_icon_animated == 'yes') {
145				animation = google.maps.Animation.DROP;
146			}
147
148			var marker;
149			
150			var src ='/wp-content/uploads/2021/09/ammenities.png';
151			var scaledSize = new google.maps.Size(40, 71); // scaled size
152			var origin=new google.maps.Point(0,0); // origin
153			var anchor=new google.maps.Point(20, 74); // anch
154			switch(this.options.locations[l].poi_group){
155				case 'schools':
156						 src ='/wp-content/uploads/2021/09/schools-1.png';
157					break;
158				case 'parks':
159						 src ='/wp-content/uploads/2021/09/park.png';
160					break;
161				case 'modelhomes':
162						 src ='/wp-content/uploads/2021/09/modelhome.png';
163					break;
164				case 'trails':
165						 src ='/wp-content/uploads/2021/09/trails.png';
166					break;
167				case 'visitorcenter':
168						 src ='/wp-content/uploads/2021/09/visitorcenters.png';
169					break;
170				case 'homes':
171						 src ='/wp-content/uploads/2021/09/ahome-1.png';
172						 scaledSize = new google.maps.Size(30, 53); // scaled size
173						 origin=new google.maps.Point(0,0); // origin
174						 anchor=new google.maps.Point(15, 57); // anch
175					break;
176				default:
177					 	src ='/wp-content/uploads/2021/09/ammenities.png';
178			}
179			if(this.options.locations[l].poi_icon){
180			   src = this.options.locations[l].poi_icon;
181			}
182		    icon = {
183			 	url: src, // url
184			 	scaledSize: scaledSize, // scaled size
185			 	origin: origin, // origin
186			 	anchor: anchor // anchor
187		    };
188			
189			marker = new google.maps.Marker({
190				lindex: l,
191				hindex: this.options.locations[l].hindex,
192				title: this.options.locations[l].poi_name,
193				position: new google.maps.LatLng(this.options.locations[l].poi_lat, this.options.locations[l].poi_lng),
194				map: this.map,
195				poi_id: this.options.locations[l].poi_id,
196				animation: animation,
197				group: this.options.locations[l].poi_group,
198				poi_image: this.options.locations[l].poi_image,
199				poi_url: this.options.locations[l].poi_url,
200				poi_name: this.options.locations[l].poi_name,
201				poi_description: this.options.locations[l].poi_description,
202				popup: this.options.locations[l].poi_popup_id,
203				icon: icon
204			});
205			var elem = this;
206             var ww = jQuery(window).width();
207              if(ww>=850){
208                marker.addListener('mouseover', function(e) {
209                     var lindex = this.lindex;
210                     elem.closeInfoWindows();
211                     elem.infoWindows[lindex].open(elem.map, elem.markers[lindex]);
212                });
213                infowindow.addListener('mouseout', function(e) {
214                     var lindex = this.lindex;
215                     elem.infoWindows[lindex].close(elem.map, elem.markers[lindex]);
216                });
217              }
218			marker.addListener('click', function(e) {
219				 elem.closeInfoWindows();
220//				$('#mapDetails').removeClass('active');  
221//				$('.map-details-image').css('background-image','url(/wp-content/uploads/2022/07/loading.gif)');
222//				$('.map-title h2').html('...');
223//				$('.map-desc p').html('...');
224//				$('.map-more-btn a').attr('href', '#');
225//				var theSlider = '#poiSlides';
226				var lindex = this.lindex;
227				var hindex = this.hindex;
228				//elem.infoWindows[lindex].open(elem.map, this);
229				//elem.map.panTo(this.getPosition())
230				for (var i = 0; i < elem.markers.length; i++) {
231					elem.markers[i].setOptions({
232						'opacity': 1
233					});
234				}
235                console.info(this);
236				var lat = this.position.lat();
237				var lng = this.position.lng();
238				var newMapOptions ={
239					  zoom: 15,
240					  center: new google.maps.LatLng(lat,lng),
241				}
242				elem.doAnimation(newMapOptions, 500);
243////				this.setOptions({
244////					'opacity': 1,
245////					'zIndex': 100000
246////				});
247//				console.info(this.group);
248//				var gpop = 45;
249//				if(this.group=='homes'){
250//					gpop = 218; 
251//					lindex = hindex;
252//					theSlider = '#groupSlides';
253//				}
254				console.info(this.poi_image);
255				$('.map-details-image').css('background-image', 'url('+this.poi_image+')');
256				$('.map-title h2').html(this.poi_name);
257				$('.map-desc p').html(this.poi_description);
258				$('.map-more-btn a').attr('href', this.poi_url);
259				
260				setTimeout(function(){
261					$('#mapDetails').addClass('active');
262                    //todo
263                  
264				},1400);
265				  
266                var timeout = 1000;
267                   var ww = jQuery(window).width();
268                    if(ww<=0){
269                        timeout = 0
270                    }
271                var _this = this;
272				setTimeout(function() {
273					//elem.infoWindows[lindex].open(elem.map, elem.markers[lindex]);
274                     var lindex = _this.lindex;
275                     elem.closeInfoWindows();
276                     elem.infoWindows[lindex].open(elem.map, elem.markers[lindex]);
277				}, timeout);
278			});
279			//SITE.Global.mapMarkers.push(marker);
280			this.markers.push(marker);
281			this.infoWindows.push(infowindow);
282			
283		}
284//		this.map.data.loadGeoJson('/wp-content/plugins/landpui/elementor/widget-area-map/data.json?nc=577777575578957'); 
285//      	this.map.data.setStyle(function(feature) {
286//            var type = feature.getProperty('type');
287//            //console.info(type);
288//            var fillColor = 'grey';
289//            var strokeColor = 'grey';
290//            var strokeWeight = 3;
291//            //#0d9351
292//            //#ba1049
293//            switch(type){
294//               case 'north':
295//                     fillColor = '#cbd6b5';
296//                     strokeColor = '#cbd6b5';
297//                     strokeWeight = 3;
298//               break;
299//              case 'south':
300//                     fillColor = '#cbd6b5';
301//                     strokeColor = '#cbd6b5';
302//                     strokeWeight = 3;
303//               break;
304//               default:   
305//                     fillColor = '#bbc92f';
306//                     strokeColor = '#bbc92f';
307//                     strokeWeight = 3;
308//            }
309//            return {
310//			  fillColor: fillColor,
311//              strokeColor: strokeColor,
312//              strokeWeight: strokeWeight,
313//			  fillOpacity: 0.24,
314//			  zIndex: -100
315//            };         
316//         });
317			
318			//END ADD MARKERS  
319			/*this.map.data.loadGeoJson('/wp-content/plugins/wwcui/elementor/widget-gmap/local/grandparkway-south.json'); 
320		
321		WWCAMAP<?php echo $tkey; ?>.Actions.setInitStyle('all');*/
322
323		google.maps.event.addListenerOnce(this.map, 'idle', function() {
324//			if (this.options.mapLoaded === false) {
325//				setTimeout(function() {
326//					this.smoothZoom(this.map, this.options.gmzoom_size, this.map.getZoom(), true);
327//				
328//				}, 1000);
329//
330//			}
331		});
332	}
333	add3dPins(){
334		var self = this;
335		let scene, renderer, camera, gfltloader;
336		
337		const webglOverlayView = new google.maps.WebglOverlayView();	
338		  webglOverlayView.onAdd = () => {
339			  // Set up the Three.js scene.
340			  scene = new THREE.Scene();
341			  camera = new THREE.PerspectiveCamera();
342			  const ambientLight = new THREE.AmbientLight( 0xffffff, 0.75 ); // Soft white light.
343			  scene.add(ambientLight);
344
345			  // Load the 3D model with GLTF Loader from Three.js.
346			  gfltloader = new THREE.GLTFLoader();
347			  gfltloader.load("https://raw.githubusercontent.com/googlemaps/js-samples/master/assets/pin.gltf", function ( gltf ) {
348				   gltf.scene.scale.set(10, 10, 10);
349				  console.info(gltf);
350			  });
351		  }	
352		  webglOverlayView.onContextRestored = (gl) => {
353			  // Create the Three.js renderer, using the
354			  // maps's WebGL rendering context.
355			  renderer = new THREE.WebGLRenderer({
356				canvas: gl.canvas,
357				context: gl,
358				...gl.getContextAttributes(),
359			  });
360			  renderer.autoClear = false;
361		 }
362		  webglOverlayView.onDraw = (gl, coordinateTransformer) => {
363			  // Update camera matrix to ensure the model is georeferenced correctly on the map.
364			  console.info('redraw');
365			  const matrix = coordinateTransformer.fromLatLngAltitude(self.map.getCenter(), 100);
366			  camera.projectionMatrix = new THREE.Matrix4().fromArray(matrix);
367
368			  // Request a redraw and render the scene.
369			  webglOverlayView.requestRedraw();
370			  renderer.render(scene, camera);
371
372			  // Always reset the GL state.
373			  renderer.resetState();
374		  }
375
376			// Add the overlay to the map.
377		 	webglOverlayView.setMap(this.map);
378	}
379	openingAnimation() {
380		// Styles a map in night mode.
381		var self = this;
382        var newcenter=new google.maps.LatLng(30.217652237033743, -98.21064068043921); // origin
383		var currentMapOptions = { tilt:0, heading: 0, zoom: 6, center: newcenter};
384		var elem = this;
385		
386		setTimeout(function(){
387			TOURUTILS.doAnimation(self.map, currentMapOptions, { tilt:  60, heading: 0, zoom: 10 }, 1200);
388            setTimeout(function(){
389                elem.infoWindows[0].open(elem.map, elem.markers[0]);
390            }, 500);
391		}, 500);
392		
393	}
394	openingAnimation2() {
395		// Styles a map in night mode.
396		var self = this;
397		var currentMapOptions = { tilt:self.map.getTilt(), heading: self.map.getHeading(), zoom: self.map.getZoom(), center: self.map.getCenter()};
398		TOURUTILS.doAnimation(self.map, currentMapOptions, { tilt:  37.5, heading: 185, zoom: this.options.zoom }, 1200);
399		
400	}
401	doAnimation(newMapOptions, duration) {
402		// Styles a map in night mode.
403		var self = this;
404		SITE.Global.mapsobj[0].map.panTo(newMapOptions.center);
405		var currentMapOptions = { tilt:self.map.getTilt(), heading: self.map.getHeading(), zoom: self.map.getZoom(), center: self.map.getCenter()};
406		TOURUTILS.doAnimation(self.map, currentMapOptions, newMapOptions, duration);
407		
408	}
409	smoothZoom(level, cnt, mode) {
410		//alert('Count: ' + cnt + 'and Max: ' + level);
411		var z;
412		// If mode is zoom in
413		if (mode == true) {
414
415			if (cnt >= level) {
416				return;
417			} else {
418				z = google.maps.event.addListener(this.map, 'zoom_changed', function(event) {
419					google.maps.event.removeListener(z);
420					this.smoothZoom(level, cnt + 1, true);
421				});
422				setTimeout(function() {
423					map.setZoom(cnt)
424				}, 80);
425			}
426		} else {
427			if (cnt <= level) {
428				return;
429			} else {
430				z = google.maps.event.addListener(this.map, 'zoom_changed', function(event) {
431					google.maps.event.removeListener(z);
432					this.smoothZoom(level, cnt - 1, false);
433				});
434				setTimeout(function() {
435					this.map.setZoom(cnt)
436				}, 80);
437			}
438		}
439	}
440	
441	closeInfoWindows() {
442		for (var i = 0; i < this.infoWindows.length; i++) {
443			this.infoWindows[i].close();
444		}
445	}
446	initControl(controlDiv, map) {
447
448		// Set CSS for the control border.
449		var controlUI = document.createElement('div');
450		controlUI.style.backgroundColor = '#2d464a';
451		controlUI.style.border = '2px solid #fff';
452		controlUI.style.borderRadius = '0';
453		controlUI.style.boxShadow = '0 2px 6px rgba(0,0,0,0)';
454		controlUI.style.cursor = 'pointer';
455		controlUI.style.marginTop = '0';
456		controlUI.style.marginBottom = '0';
457		controlUI.style.textAlign = 'center';
458		controlUI.style.width = '45px';
459		controlUI.style.height = '45px';
460		controlUI.classList.add('togglefilters');
461
462		controlUI.title = 'Toggle List';
463		controlDiv.appendChild(controlUI);
464
465		// Set CSS for the control interior.
466		var controlText = document.createElement('div');
467		controlText.style.color = '#';
468		controlText.style.fontFamily = 'Roboto,Arial,sans-serif';
469		controlText.style.fontSize = '21px';
470		controlText.style.lineHeight = '45px';
471		controlText.style.paddingLeft = '5px';
472		controlText.style.paddingRight = '5px';
473		controlText.innerHTML = '<i style="color: white;" class="fas fa-expand-alt"></i>';
474		controlUI.appendChild(controlText);
475
476		// Setup the click event listeners: simply set the map to Chicago.
477		controlUI.addEventListener('click', function() {
478			$('.land-amap-holder').toggleClass('open');
479		});
480
481	}
482	initRefreshControl(controlDiv, map) {
483
484		// Set CSS for the control border.
485		var controlUI = document.createElement('div');
486		controlUI.style.backgroundColor = '#F78F47';
487		controlUI.style.border = '1px solid #fff';
488		controlUI.style.borderRadius = '0';
489		controlUI.style.boxShadow = '0 2px 2px rgba(0,0,0,0)';
490		controlUI.style.cursor = 'pointer';
491		controlUI.style.marginTop = '0';
492		controlUI.style.marginBottom = '0';
493		controlUI.style.textAlign = 'center';
494		controlUI.style.width = '35px';
495		controlUI.style.height = '35px';
496		controlUI.classList.add('refreshmap');
497
498		controlUI.title = 'Refresh';
499		controlDiv.appendChild(controlUI);
500
501		// Set CSS for the control interior.
502		var controlText = document.createElement('div');
503		controlText.style.color = '#';
504		controlText.style.fontFamily = 'Roboto,Arial,sans-serif';
505		controlText.style.fontSize = '17px';
506		controlText.style.lineHeight = '35px';
507		controlText.style.paddingLeft = '5px';
508		controlText.style.paddingRight = '5px';
509		controlText.innerHTML = '<i style="color: white;" class="fas fa-redo"></i>';
510		controlUI.appendChild(controlText);
511		var elem = this;
512
513		// Setup the click event listeners: simply set the map to Chicago.
514		controlUI.addEventListener('click', function() {
515
516			for (var i = 0; i < elem.markers.length; i++) {
517				elem.markers[i].setOptions({
518					'opacity': 1
519				});
520			}
521			var bounds = new google.maps.LatLngBounds();
522
523			for (var i = 0; i < elem.infoWindows.length; i++) {
524				elem.infoWindows[i].close();
525			}
526			for (var i = 0; i < elem.markers.length; i++) {
527				elem.markers[i].setVisible(true);
528				//$('.map-group').show();
529				elem.map.panTo({
530					lat: elem.options.gmcenteron_lat,
531					lng: elem.options.gmcenteron_lng
532				});
533				setTimeout(function() {
534					elem.map.setZoom(9);
535				}, 500);
536			}
537
538		});
539	}
540
541}
542
543

Line numbers count LF bytes from the start of the resource, as the search results do. Vendor segments are library code the classifier recognised; they are stored but not indexed. Bytes are shown as Latin1 characters, one per byte.