var groups = new Array();
var map = null;
function initialize() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("cjasMapCanvas"));
map.removeMapType(G_SATELLITE_MAP);
map.removeMapType(G_HYBRID_MAP);
// Create a tile layer consisting of the Cornell campus map.
var tileLayer = new GTileLayer(null, 14, 17, {
opacity: 0.8,
isPng: true
});
tileLayer.getTileUrl = getTileUrl;
// Create an overlay for the campus map.
var campusMapLayer = new GTileLayerOverlay(tileLayer);
map.enableScrollWheelZoom();
map.enableContinuousZoom();
map.addControl(new GScaleControl());
map.addControl(new GLargeMapControl());
map.setCenter(new GLatLng(42.4495, -76.4836),
16);
map.addOverlay(campusMapLayer);
// Small marker icon.
var tinyIcon = new GIcon();
tinyIcon.image = 'icons/mm_20_red.png';
tinyIcon.shadow = 'icons/mm_20_shadow.png';
tinyIcon.iconSize = new GSize(12, 20);
tinyIcon.shadowSize = new GSize(22, 20);
tinyIcon.iconAnchor = new GPoint(6, 20);
tinyIcon.infoWindowAnchor = new GPoint(5, 1);
var tinyMarkerOpts = {icon: tinyIcon};
// Arrow marker icon.
var tinyIcon = new GIcon();
tinyIcon.image = 'icons/arrow.png';
tinyIcon.shadow = 'icons/arrowshadow.png';
tinyIcon.iconSize = new GSize(39, 34);
tinyIcon.shadowSize = new GSize(39, 34);
tinyIcon.iconAnchor = new GPoint(12, 34);
tinyIcon.infoWindowAnchor = new GPoint(9, 2);
var arrowMarkerOpts = {icon: tinyIcon};
// Base for large marker icon.
var baseIcon = new GIcon();
baseIcon.shadow = "icons/shadow50.png";
baseIcon.iconSize = new GSize(20, 34);
baseIcon.shadowSize = new GSize(37, 34);
baseIcon.iconAnchor = new GPoint(9, 34);
baseIcon.infoWindowAnchor = new GPoint(9, 2);
baseIcon.infoShadowAnchor = new GPoint(18, 25);
_createMarker_icon = new GIcon(baseIcon);
_createMarker_icon.image = "icons/markerA.png";
marker = new GMarker(new GLatLng(42.4495, -76.4836), {icon: _createMarker_icon});map.addOverlay(marker);marker.bindInfoWindowHtml('
Goldwin Smith Hall
Weekly Showing
Saturdays 7 p.m. – 11 p.m.
Lewis Auditorium
E-board
Fridays 5 p.m. – 6 p.m.
Room 156
');if (groups['event'] == null)groups['event'] = new Array();groups['event']['Goldwin Smith Hall'] = marker; _createMarker_icon = new GIcon(baseIcon);
_createMarker_icon.image = "icons/markerB.png";
marker = new GMarker(new GLatLng(42.4536, -76.4762), {icon: _createMarker_icon});map.addOverlay(marker);marker.bindInfoWindowHtml('Appel Commons
186 Cradit Farm Drive
Manga Club
Wednesdays 7 p.m. – 9 p.m.
Room 302B
');if (groups['event'] == null)groups['event'] = new Array();groups['event']['Appel Commons'] = marker;marker = new GMarker(new GLatLng(42.447568, -76.48507), tinyMarkerOpts);map.addOverlay(marker);marker.bindInfoWindowHtml('Clock tower
');if (groups['central'] == null)groups['central'] = new Array();groups['central']['Clock tower'] = marker;marker = new GMarker(new GLatLng(42.4499, -76.4845), tinyMarkerOpts);map.addOverlay(marker);marker.bindInfoWindowHtml('Arts Quad
College of Arts and Sciences
');if (groups['central'] == null)groups['central'] = new Array();groups['central']['Arts Quad'] = marker;marker = new GMarker(new GLatLng(42.4444, -76.4835), tinyMarkerOpts);map.addOverlay(marker);marker.bindInfoWindowHtml('Engineering Quad
');if (groups['central'] == null)groups['central'] = new Array();groups['central']['Engineering Quad'] = marker;marker = new GMarker(new GLatLng(42.4488, -76.478), tinyMarkerOpts);map.addOverlay(marker);marker.bindInfoWindowHtml('Ag Quad
College of Agriculture and Life Sciences
');if (groups['central'] == null)groups['central'] = new Array();groups['central']['Ag Quad'] = marker;marker = new GMarker(new GLatLng(42.4425, -76.4859), tinyMarkerOpts);map.addOverlay(marker);marker.bindInfoWindowHtml('Schwartz Center (Collegetown)
');if (groups['central'] == null)groups['central'] = new Array();groups['central']['Schwartz Center (Collegetown)'] = marker;marker = new GMarker(new GLatLng(42.44732, -76.46623), tinyMarkerOpts);map.addOverlay(marker);marker.bindInfoWindowHtml('Vet Research Tower
College of Veterinary Medicine
618 Tower Road
');if (groups['central'] == null)groups['central'] = new Array();groups['central']['Vet Research Tower'] = marker;marker = new GMarker(new GLatLng(42.4559, -76.4775), tinyMarkerOpts);map.addOverlay(marker);marker.bindInfoWindowHtml('Robert Purcell Community Center
');if (groups['ugrad'] == null)groups['ugrad'] = new Array();groups['ugrad']['Robert Purcell Community Center'] = marker;marker = new GMarker(new GLatLng(42.4465, -76.4881), tinyMarkerOpts);map.addOverlay(marker);marker.bindInfoWindowHtml('Noyes Community Center
');if (groups['ugrad'] == null)groups['ugrad'] = new Array();groups['ugrad']['Noyes Community Center'] = marker;marker = new GMarker(new GLatLng(42.4531, -76.4819), tinyMarkerOpts);map.addOverlay(marker);marker.bindInfoWindowHtml('Risley Hall
');if (groups['ugrad'] == null)groups['ugrad'] = new Array();groups['ugrad']['Risley Hall'] = marker;marker = new GMarker(new GLatLng(42.442485, -76.486838), tinyMarkerOpts);map.addOverlay(marker);marker.bindInfoWindowHtml('Cascadilla Hall
');if (groups['ugrad'] == null)groups['ugrad'] = new Array();groups['ugrad']['Cascadilla Hall'] = marker;marker = new GMarker(new GLatLng(42.4563, -76.472), tinyMarkerOpts);map.addOverlay(marker);marker.bindInfoWindowHtml('Hasbrouck Community Center
');if (groups['grad'] == null)groups['grad'] = new Array();groups['grad']['Hasbrouck Community Center'] = marker;marker = new GMarker(new GLatLng(42.4411, -76.474), tinyMarkerOpts);map.addOverlay(marker);marker.bindInfoWindowHtml('Maplewood Community Center
');if (groups['grad'] == null)groups['grad'] = new Array();groups['grad']['Maplewood Community Center'] = marker;marker = new GMarker(new GLatLng(42.4437, -76.4863), tinyMarkerOpts);map.addOverlay(marker);marker.bindInfoWindowHtml('Hughes Hall
');if (groups['grad'] == null)groups['grad'] = new Array();groups['grad']['Hughes Hall'] = marker;marker = new GMarker(new GLatLng(42.4402, -76.492), tinyMarkerOpts);map.addOverlay(marker);marker.bindInfoWindowHtml('Schuyler House
');if (groups['grad'] == null)groups['grad'] = new Array();groups['grad']['Schuyler House'] = marker;marker = new GMarker(new GLatLng(42.45348, -76.48659), tinyMarkerOpts);map.addOverlay(marker);marker.bindInfoWindowHtml('Thurston Court
');if (groups['grad'] == null)groups['grad'] = new Array();groups['grad']['Thurston Court'] = marker;toggleMarkerGroup('central');toggleMarkerGroup('ugrad');toggleMarkerGroup('grad');GEvent.trigger(groups['event']['Goldwin Smith Hall'], 'click'); }
}
/**
* Converts tile IDs into tile image URLs.
*/
function getTileUrl(tile, zoom) {
if (zoom == 17 &&
37685 <= tile.x && tile.x <= 37697 &&
48430 <= tile.y && tile.y <= 48440)
return "tiles/" + tile.x + "_"
+ tile.y + "_17.png";
if (zoom == 16 &&
18842 <= tile.x && tile.x <= 18848 &&
24215 <= tile.y && tile.y <= 24220)
return "tiles/" + tile.x + "_"
+ tile.y + "_16.png";
if (zoom == 15 &&
9421 <= tile.x && tile.x <= 9424 &&
12107 <= tile.y && tile.y <= 12109)
return "tiles/" + tile.x + "_"
+ tile.y + "_15.png";
if (zoom == 14 &&
4710 <= tile.x && tile.x <= 4712 &&
6053 <= tile.y && tile.y <= 6054)
return "tiles/" + tile.x + "_"
+ tile.y + "_14.png";
return "tiles/blank.png";
}
function toggleMarkerGroup(groupName) {
var groupDOM = document.getElementById('cjasMarkerGroup' + groupName);
var makingVisible =
(groupDOM.className.split(" ")[0] == "cjasMarkerGroupCollapsed");
groupDOM.className =
(makingVisible ? "cjasMarkerGroupExpanded" : "cjasMarkerGroupCollapsed")
+ " cjasMarkerGroup";
var group = groups[groupName];
for (var name in group) {
var marker = group[name];
if (makingVisible) marker.show();
else {
marker.closeInfoWindow();
marker.hide();
}
}
}
var oldHeight = 0;
var oldWidth = 0;
function resizeElements() {
var windowHeight =
window.innerHeight != null
? window.innerHeight : document.documentElement.clientHeight;
var windowWidth =
window.innerWidth != null
? window.innerWidth : document.documentElement.clientWidth;
if (windowHeight == oldHeight && windowWidth == oldWidth) return;
var newHeight = windowHeight - 126;
controlDiv.style.height = (newHeight+2) + 'px';
mapDiv.style.height = newHeight + 'px';
mapDiv.style.width = (windowWidth - parseInt(mapDiv.offsetLeft) - 3) + 'px';
if (map != null) map.checkResize();
oldHeight = windowHeight;
oldWidth = windowWidth;
}