-
Notifications
You must be signed in to change notification settings - Fork 0
Expand file tree
/
Copy pathjquery.maps.js
More file actions
85 lines (63 loc) · 2.23 KB
/
jquery.maps.js
File metadata and controls
85 lines (63 loc) · 2.23 KB
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
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
(function ($) {
$.fn.gmaps = function(options) {
return this.each(function() {
var zoom = $(this).data('zoom');
var settings = $.extend({
zoom: zoom,
scrollwheel: false,
center: new google.maps.LatLng(-8.381525,-34.969482)
}, options);
var openWindow = [];
var map = new google.maps.Map(this,settings);
var markerOptions = {};
var dataUrl = $(this).data('json-url');
var dataLat;
var dataLng;
var dataTitle;
var dataText;
var markerIcon = $(this).data('icon');
var data;
if($(this).data('json-url') !== undefined){
$.getJSON(dataUrl, data, function (result) {
data = result.data;
for(var k in data) {
dataLat = data[k].latitude;
dataLng = data[k].longitude;
dataTitle = data[k].title;
dataText = data[k].text;
setMap(map, markerOptions, markerIcon, dataLat, dataLng, dataTitle, dataText);
}
});
} else {
dataLat = $(this).data('latitude');
dataLng = $(this).data('longitude');
dataTitle = $(this).data('title');
dataText = $(this).data('text');
setMap(map, markerOptions, markerIcon, dataLat, dataLng, dataTitle, dataText);
}
function setMap( map, markerOptions, markerIcon, dataLat, dataLng, dataTitle, dataText ) {
markerOptions['icon'] = new google.maps.MarkerImage(markerIcon, null, null, null, new google.maps.Size(24, 24));
markerOptions['position'] = new google.maps.LatLng(dataLat, dataLng);
markerOptions['content'] = ['<b>',dataTitle,'</b><br>',dataText].join('');
var markerSettings = $.extend({
map: map
}, markerOptions);
var marker = new google.maps.Marker(markerSettings);
map.setCenter(markerOptions['position']);
markerClick(marker, markerOptions['content']);
};
function markerClick(marker, content) {
var infowindow = new google.maps.InfoWindow({
content: content
});
google.maps.event.addListener(marker, 'click', function() {
if(typeof openWindow[0] !== 'undefined')
openWindow[0].close();
openWindow.pop();
infowindow.open(map,marker);
openWindow.push(infowindow);
});
};
});
};
}(jQuery));