added more preview pages and more templates
This commit is contained in:
@@ -0,0 +1,138 @@
|
||||
/*
|
||||
* RD-Google Map - v0.1
|
||||
* Easy as hell Google Map Api Jquery plugin.
|
||||
*
|
||||
* Made by Evgeniy Gusarov (Stmechanus || Diversant)
|
||||
*
|
||||
* Under MIT License
|
||||
*/
|
||||
|
||||
|
||||
;
|
||||
(function ($) {
|
||||
'use strict'
|
||||
|
||||
var def_settings = {
|
||||
cntClass: 'map',
|
||||
mapClass: 'map_model',
|
||||
locationsClass: 'map_locations',
|
||||
marker: {
|
||||
basic: 'images/gmap_marker.png',
|
||||
active: 'images/gmap_marker_active.png'
|
||||
},
|
||||
styles: []
|
||||
},
|
||||
|
||||
defaults = {
|
||||
map: {
|
||||
x: -73.9924068,
|
||||
y: 40.646197,
|
||||
zoom: 14
|
||||
},
|
||||
locations: []
|
||||
};
|
||||
|
||||
|
||||
var getLocations = function ($map, settings) {
|
||||
var $locations = $map.parent().find('.' + settings.locationsClass).find('li');
|
||||
|
||||
var locations = [];
|
||||
|
||||
|
||||
if ($locations.length > 0) {
|
||||
$locations.each(function (i) {
|
||||
var $loc = $(this);
|
||||
|
||||
if ($loc.data('x') && $loc.data('y')) {
|
||||
locations[i] = {
|
||||
x: $loc.data('x'),
|
||||
y: $loc.data('y'),
|
||||
basic: $loc.data('basic') ? $loc.data('basic') : settings.marker.basic,
|
||||
active: $loc.data('active') ? $loc.data('active') : settings.marker.active
|
||||
}
|
||||
|
||||
if (!$.trim($loc.html())) {
|
||||
locations[i].content = false;
|
||||
} else {
|
||||
locations[i].content = '<div class="iw-content">' + $loc.html() + '</div>';
|
||||
}
|
||||
}
|
||||
});
|
||||
}
|
||||
return locations;
|
||||
}
|
||||
|
||||
$.fn.googleMap = function (settings) {
|
||||
|
||||
settings = $.extend(true, {}, def_settings, settings);
|
||||
|
||||
$(this).each(function () {
|
||||
var $this = $(this);
|
||||
|
||||
var options = $.extend(
|
||||
true, {}, defaults,
|
||||
{
|
||||
map: {
|
||||
x: $this.data('x'),
|
||||
y: $this.data('y'),
|
||||
zoom: $this.data('zoom')
|
||||
},
|
||||
locations: getLocations($this, settings)
|
||||
}
|
||||
);
|
||||
|
||||
var map = new google.maps.Map(this, {
|
||||
center: new google.maps.LatLng(
|
||||
parseFloat(options.map.y),
|
||||
parseFloat(options.map.x)
|
||||
),
|
||||
scrollwheel: false,
|
||||
styles: settings.styles,
|
||||
zoom: options.map.zoom
|
||||
}),
|
||||
infowindow = new google.maps.InfoWindow(),
|
||||
markers = [];
|
||||
|
||||
for (var i in options.locations) {
|
||||
markers[i] = new google.maps.Marker(
|
||||
{
|
||||
position: new google.maps.LatLng(
|
||||
parseFloat(options.locations[i].y),
|
||||
parseFloat(options.locations[i].x)),
|
||||
map: map,
|
||||
icon: options.locations[i].basic,
|
||||
index: i
|
||||
}
|
||||
);
|
||||
|
||||
|
||||
if (options.locations[i].content) {
|
||||
google.maps.event.addListener(markers[i], 'click', function () {
|
||||
for (var j in markers) {
|
||||
markers[j].setIcon(options.locations[j].basic);
|
||||
}
|
||||
|
||||
infowindow.setContent(options.locations[this.index].content);
|
||||
infowindow.open(map, this);
|
||||
$('.gm-style-iw').parent().parent().addClass("gm-wrapper");
|
||||
this.setIcon(options.locations[this.index].active);
|
||||
});
|
||||
google.maps.event.addListener(infowindow, 'closeclick', function () {
|
||||
for (var j in markers) {
|
||||
markers[j].setIcon(options.locations[j].basic);
|
||||
}
|
||||
});
|
||||
}
|
||||
}
|
||||
|
||||
google.maps.event.addDomListener(window, 'resize', function() {
|
||||
map.setCenter(new google.maps.LatLng(
|
||||
parseFloat(options.map.y),
|
||||
parseFloat(options.map.x)
|
||||
));
|
||||
});
|
||||
});
|
||||
};
|
||||
|
||||
|
||||
})(jQuery);
|
||||
Reference in New Issue
Block a user