| 1 |
/* $Id$ */
|
| 2 |
|
| 3 |
Drupal.gmap.addHandler('gmap', function(elem) {
|
| 4 |
var obj = this;
|
| 5 |
// Respond to incoming movements.
|
| 6 |
// Make it a gmap.
|
| 7 |
// Hide away a reference to the map
|
| 8 |
//obj.map = map;
|
| 9 |
obj.bind("init",function() {
|
| 10 |
var map = obj.map;
|
| 11 |
GEvent.addListener(obj.map, "click", function(overlay, latlng) {
|
| 12 |
var lat = obj.vars.latitude;
|
| 13 |
var lng = obj.vars.longitude;
|
| 14 |
try {
|
| 15 |
var zoom = Lat49.Tile.convertGMap2Zoom(obj.vars.zoom);
|
| 16 |
lat49adsGetAds(lat,lng,zoom);
|
| 17 |
} catch(e) {}
|
| 18 |
});
|
| 19 |
GEvent.addListener(obj.map, "moveend", function(overlay, latlng) {
|
| 20 |
var lat = obj.vars.latitude;
|
| 21 |
var lng = obj.vars.longitude;
|
| 22 |
try {
|
| 23 |
var zoom = Lat49.Tile.convertGMap2Zoom(obj.vars.zoom);
|
| 24 |
lat49adsGetAds(lat,lng,zoom);
|
| 25 |
} catch(e) {}
|
| 26 |
|
| 27 |
});
|
| 28 |
});
|
| 29 |
});
|
| 30 |
|
| 31 |
var AdPushpin = function() {
|
| 32 |
//private members
|
| 33 |
var map = null;
|
| 34 |
var markersArray = new Array();
|
| 35 |
//public members
|
| 36 |
return {
|
| 37 |
// Set the map variable and define the pushpin icon.
|
| 38 |
setMap:function(m)
|
| 39 |
{
|
| 40 |
map = m;
|
| 41 |
},
|
| 42 |
//Update the marker info with a title and address
|
| 43 |
updateMarker:function(marker,title, address)
|
| 44 |
{
|
| 45 |
GEvent.addListener(marker, "click", function() {
|
| 46 |
marker.openInfoWindowHtml("<b>" + title + "</b><br> " + address);});
|
| 47 |
},
|
| 48 |
//Hide all the pushpins
|
| 49 |
hidePushPin:function()
|
| 50 |
{
|
| 51 |
for (var i = 0; i < markersArray.length; i++)
|
| 52 |
{
|
| 53 |
map.removeOverlay(markersArray[i]);
|
| 54 |
}
|
| 55 |
markersArray = new Array();
|
| 56 |
},
|
| 57 |
//Push new markers into the markersArray and display them on the map.
|
| 58 |
//The parameter is an array of objects that include latitude, longitude, title, address, and pinurl.
|
| 59 |
//var pin-lat = data[i].lat.
|
| 60 |
//var pin-lon = data[i].lon.
|
| 61 |
//var pin-title = data[i].title.
|
| 62 |
//var pin-address = data[i].address.
|
| 63 |
//var pin-url = data[i].pinurl.
|
| 64 |
showPushPin:function(loc)
|
| 65 |
{
|
| 66 |
var maxpins = 7;
|
| 67 |
for (var i=0; i<loc.length;i++)
|
| 68 |
{
|
| 69 |
if(i<=maxpins)
|
| 70 |
{
|
| 71 |
var point = new GLatLng(loc[i].lat, loc[i].lon);
|
| 72 |
var adicon = new GIcon(G_DEFAULT_ICON);
|
| 73 |
adicon.image = loc[i].pinurl;
|
| 74 |
adicon.shadow ="";
|
| 75 |
adicon.iconSize = new GSize(36,32);
|
| 76 |
var marker = new GMarker(point,{clickable: true, bouncy: true, icon:adicon});
|
| 77 |
map.addOverlay(marker);
|
| 78 |
// add markers to array
|
| 79 |
markersArray.push(marker);
|
| 80 |
this.updateMarker(marker, loc[i].title, loc[i].address);
|
| 81 |
}
|
| 82 |
}
|
| 83 |
}
|
| 84 |
}
|
| 85 |
}();
|
| 86 |
|
| 87 |
function lat49adsGetAds(lat,lng,zoom) {
|
| 88 |
//Create an object to map the DIV ids to the desired ad size.
|
| 89 |
var ad_types = new Object();
|
| 90 |
|
| 91 |
//Need to do checks before actually loading up each placement.
|
| 92 |
var content = $("#lat49ads_half_banner");
|
| 93 |
if (content.length) {ad_types['lat49ads_half_banner']=Lat49.Ads.HALF_BANNER;}
|
| 94 |
|
| 95 |
content = $("#lat49ads_button");
|
| 96 |
if (content.length) {ad_types['lat49ads_button']=Lat49.Ads.BUTTON;}
|
| 97 |
|
| 98 |
content = $("#lat49ads_leaderboard");
|
| 99 |
if (content.length) {ad_types['lat49ads_leaderboard']=Lat49.Ads.LEADERBOARD; }
|
| 100 |
|
| 101 |
content = $("#lat49ads_full_banner");
|
| 102 |
if (content.length) {ad_types['lat49ads_full_banner']=Lat49.Ads.FULL_BANNER; }
|
| 103 |
|
| 104 |
content = $("#lat49ads_medium_rectangle");
|
| 105 |
if (content.length) {ad_types['lat49ads_medium_rectangle']=Lat49.Ads.MEDIUM_RECTANGLE; }
|
| 106 |
|
| 107 |
Lat49.updateMultiAdsByLatLon(ad_types,lat,lng,zoom);
|
| 108 |
|
| 109 |
content = $("#lat49ads_adcontainer");
|
| 110 |
if (content.length) { Lat49.updateAdByLatLon('lat49ads_adcontainer',lat,lng,zoom); }
|
| 111 |
|
| 112 |
}
|