forked from verdnatura/hedera-web
156 lines
3.1 KiB
JavaScript
156 lines
3.1 KiB
JavaScript
|
|
||
|
var gmapsIsLoaded = false;
|
||
|
|
||
|
Vn.Location = new Class
|
||
|
({
|
||
|
Extends: Vn.Module
|
||
|
|
||
|
,activate: function ()
|
||
|
{
|
||
|
this.gui.loaderPush ();
|
||
|
|
||
|
if (!gmapsIsLoaded)
|
||
|
{
|
||
|
gmapsLoadedCallback = this.gmapsLoaded.bind (this);
|
||
|
Vn.includeJs ('https://maps.google.com/maps/api/js'+
|
||
|
'?sensor=false&callback=gmapsLoadedCallback', null, true);
|
||
|
}
|
||
|
else
|
||
|
this.gmapsLoaded ();
|
||
|
}
|
||
|
|
||
|
,gmapsLoaded: function ()
|
||
|
{
|
||
|
this.gui.loaderPop ();
|
||
|
gmapsIsLoaded = true;
|
||
|
|
||
|
var locations = [
|
||
|
{
|
||
|
lat: 39.436596
|
||
|
,lng: -0.351297
|
||
|
,title: 'Mercavalencia'
|
||
|
,desc: [
|
||
|
'Carretera Font D\'Encorts, 231'
|
||
|
,'46013 Valencia'
|
||
|
,'Valencia'
|
||
|
,'963 677 177'
|
||
|
]
|
||
|
,lang: null
|
||
|
},{
|
||
|
lat: 39.359785
|
||
|
,lng: -0.421772
|
||
|
,title: 'Valencia'
|
||
|
,desc: [
|
||
|
'Avenida Espioca, 100'
|
||
|
,'46460 Silla'
|
||
|
,'Valencia'
|
||
|
,'963 242 100'
|
||
|
]
|
||
|
,lang: 'es'
|
||
|
},{
|
||
|
lat: 40.4523125
|
||
|
,lng: -3.4984233
|
||
|
,title: 'Madrid'
|
||
|
,desc: [
|
||
|
'Polígono Industrial'
|
||
|
,'Calle de los Montes de Toledo, 20'
|
||
|
,'28830 San Fernando de Henares'
|
||
|
,'Madrid'
|
||
|
,'916 774 777'
|
||
|
]
|
||
|
},{
|
||
|
lat: 41.4962045
|
||
|
,lng: 2.3765504
|
||
|
,title: 'Barcelona'
|
||
|
,desc: [
|
||
|
'Camí del crist, 33'
|
||
|
,'08340 Vilassar de Mar'
|
||
|
,'Barcelona'
|
||
|
,'607 562 391'
|
||
|
]
|
||
|
,lang: 'ca'
|
||
|
},{
|
||
|
lat: 52.2612312
|
||
|
,lng: 4.7818154
|
||
|
,title: 'Holland'
|
||
|
,desc: [
|
||
|
'Aalsmeer Flower Auction'
|
||
|
,'Legmeerdijk 313'
|
||
|
,'1430 BA Aalsmeer'
|
||
|
,'Nederland'
|
||
|
]
|
||
|
,lang: 'nl'
|
||
|
},{
|
||
|
lat: 43.4375416
|
||
|
,lng: 5.2261456
|
||
|
,title: 'Marseille'
|
||
|
,desc: [
|
||
|
'ruben@verdnatura.es'
|
||
|
,'0033 781 533 900'
|
||
|
]
|
||
|
,lang: 'fr'
|
||
|
}
|
||
|
];
|
||
|
|
||
|
var options = {
|
||
|
zoom: 5
|
||
|
,mapTypeId: google.maps.MapTypeId.ROADMAP
|
||
|
,center: new google.maps.LatLng (46.0, 4.0)
|
||
|
};
|
||
|
|
||
|
var div = document.getElementById ('location');
|
||
|
var gmap = new google.maps.Map (div, options);
|
||
|
|
||
|
for (var i = 0; i < locations.length; i++)
|
||
|
this.createMarker (locations[i], gmap);
|
||
|
}
|
||
|
|
||
|
,createMarker: function (location, gmap)
|
||
|
{
|
||
|
var div = document.createElement ('div');
|
||
|
|
||
|
var h = document.createElement ('h3');
|
||
|
h.style.marginBottom = '8px';
|
||
|
h.appendChild (document.createTextNode (location.title));
|
||
|
div.appendChild (h);
|
||
|
|
||
|
for (i = 0; i < location.desc.length; i++)
|
||
|
{
|
||
|
var p = document.createElement ('p');
|
||
|
p.style.padding = '0px';
|
||
|
p.style.margin = '0px';
|
||
|
p.appendChild (document.createTextNode (location.desc[i]));
|
||
|
div.appendChild (p);
|
||
|
}
|
||
|
|
||
|
var lat = new google.maps.LatLng (
|
||
|
location.lat, location.lng);
|
||
|
|
||
|
var marker = new google.maps.Marker ({
|
||
|
position: lat
|
||
|
,tilte: location.title
|
||
|
,map: gmap
|
||
|
});
|
||
|
|
||
|
var infoWindow = new google.maps.InfoWindow ({
|
||
|
content: div
|
||
|
});
|
||
|
|
||
|
google.maps.event.addListener (marker, 'click',
|
||
|
this.openInfoWindow.bind (this, infoWindow, gmap, marker));
|
||
|
|
||
|
if (Vn.Cookie.get ('hedera_lang') == location.lang)
|
||
|
this.openInfoWindow (infoWindow, gmap, marker);
|
||
|
}
|
||
|
|
||
|
,openInfoWindow: function (infoWindow, gmap, marker)
|
||
|
{
|
||
|
if (this.openedWindow)
|
||
|
this.openedWindow.close ();
|
||
|
|
||
|
infoWindow.open (gmap, marker);
|
||
|
this.openedWindow = infoWindow;
|
||
|
}
|
||
|
});
|
||
|
|