/
gmaphelper.js
60 lines (50 loc) · 1.2 KB
/
gmaphelper.js
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
/**
* GmapHelper
*
* A simpler helpe class for making custom implementations with
* Google Maps for ExpressionEngine easier.
*
* @license https://objectivehtml.com/google-maps/license
* @version 1.0.1
* @build 2013-06-11
*
* Example
* -------------------------------------------------------------------
*
* // 'map' is the same as your id parameter in the exp:gmap:init tag
* var helper = new GmapHelper('map');
*
* helper.center();
*/
function GmapHelper(id) {
var t = this;
t.id = id;
t.dom = $('#'+t.id+'_map');
if(!t.dom.length) {
t.dom = $('#'+t.id)
}
t.map = window[id+'_map'];
t.markers = window[id+'_markers'];
t.options = window[id+'_options'];
t.mapCenter = t.map.getCenter();
t.draw = function() {
google.maps.event.trigger(t.map, 'resize');
}
t.center = function(useDefault) {
this.reset();
if(t.markers.length > 0 && !useDefault) {
var bounds = new google.maps.LatLngBounds();
for(var x in t.markers) {
var marker = t.markers[x];
bounds.extend(marker.getPosition());
}
t.map.fitBounds(bounds);
}
}
t.reset = function() {
t.draw();
t.map.setCenter(t.mapCenter);
t.map.setZoom(t.options.zoom);
}
return t;
}