function MapInterface(el) {
this.elmap = el; // map element
this.gmap = null; // gmap object
var imageThis = this;
this.deflat = 49.70; // starting lat.
this.deflng = 15.514; // starting long.
this.defzoom = 8; // starting zoom
this.defscrollwheelzoom = true; // starting scrollwheel zoom
this.initialize = initialize;
function initialize() {
if (window.location.hash.length > 0) {
var args = window.location.hash.substr(1).split('@');
for (var ti = 0; ti < args.length; ti++) {
var argpts = args[ti].split('=');
if (argpts[0] == 'pos') {
var posa = argpts[1].split('|');
if (posa.length == 3) {
this.deflat = parseFloat(posa[0]);
this.deflng = parseFloat(posa[1]);
this.defzoom = parseInt(posa[2]);
}
}
}
}
var mapOptions = {
center: new google.maps.LatLng(this.deflat, this.deflng),
zoom: this.defzoom,
scaleControl: false,
scaleControlOptions: {
position: google.maps.ControlPosition.BOTTOM_LEFT
},
zoomControl: false,
overviewMapControl: false,
mapTypeControl: false,
panControl: false,
streetViewControl: false,
//mapTypeControl: false,
maxZoom: 19,
minZoom: 7,
// mapTypeControlOptions: {
// mapTypeIds: [google.maps.MapTypeId.SATELLITE, "MAPT"]
// },
scrollwheel: this.defscrollwheelzoom,
mapTypeId: google.maps.MapTypeId.SATELLITE,
draggableCursor:'pointer'
};
this.gmap = new google.maps.Map(this.elmap, mapOptions);
// alert(this.gmap.getBounds());
}
this.addControl = addControl;
function addControl(ctrl, div, pos) {
ctrl.mapi = this;
//this.gmap.addControl(div, pos);
this.gmap.controls[pos].push(div);
}
this.print = print;
function print() {
//window.print();
}
this.attachLeaveConfirmation = attachLeaveConfirmation;
function attachLeaveConfirmation() {
var els = document.getElementsByTagName("a");
for (var ti = 0; ti < els.length; ti++) {
var el = els[ti];
if (el.rel == 'refout') {
google.maps.event.addDomListener(el, "click", function(event) { imageThis.checkLeave.call(imageThis, event); });
}
}
}
this.checkLeave = checkLeave;
function checkLeave(e) {
//if (this.tour.points.length > 0) {
if (confirm('Opravdu si p?ejte opustit mapovou aplikaci? V?echny neulo?ené zm?ny budou ztraceny.')) {
return true;
} else {
try {
e.preventDefault();
} catch (ex) {
}
return false;
}
//} else {
//return true;
//}
}
}
// map overlay - cz / sk relief
function NewReliefOverlay(pssw, time) {
var mapTuristLayerOverlayOptions = {
getTileUrl: function(coord, zoom) {
//return "http://services.tmapserver.cz/ftiles/gm/sum/"+zoom+"/"+coord.x+"/"+coord.y+".png";
return 'http://services.tmapserver.cz/stiles/gm/sum/'+zoom+'/'+coord.x+'/'+coord.y+'.png?m=s&t='+time+'&k='+pssw;
},
tileSize: new google.maps.Size(256, 256),
isPng: true,
opacity: 1,
maxZoom: 15,
minZoom: 7
};
var TuristLayerOverlay = new google.maps.ImageMapType(mapTuristLayerOverlayOptions);
return TuristLayerOverlay;
}
// map type - turist - w/o turis/cyklo
function NewTileMapTuristTM(pssw, time) {
var mapTuristTMOptions = {
getTileUrl: function(tile, zoom) {
//return "http://services.tmapserver.cz/ftiles/gm/tm/"+zoom+"/"+tile.x+"/"+tile.y+".png";
return 'http://services.tmapserver.cz/stiles/gm/tm/'+zoom+'/'+tile.x+'/'+tile.y+'.png?m=s&t='+time+'&k='+pssw;
},
tileSize: new google.maps.Size(256, 256),
maxZoom: 15,
minZoom: 7,
opacity: 1,
isPng: true,
name: 'MapTuristTM'
};
mapTuristTMOptions.copyright = 'Data map © SHOCart, T-MAPY';
var mapTuristTMType = new google.maps.ImageMapType(mapTuristTMOptions);
return mapTuristTMType;
}
// map type - turist
function NewTileMapTurist(pssw, time) {
var mapTuristOptions = {
getTileUrl: function(tile, zoom) {
var dir;
if (zoom > 15) {
dir = 'tm';
mapTuristOptions.copyright = 'Data map © SHOCart, T-MAPY';
} else {
dir = 'shc';
mapTuristOptions.copyright = 'Data map © SHOCart, T-MAPY';
}
//return "http://services.tmapserver.cz/ftiles/gm/shc/"+zoom+"/"+tile.x+"/"+tile.y+".png";
return 'http://services.tmapserver.cz/stiles/gm/'+dir+'/'+zoom+'/'+tile.x+'/'+tile.y+'.png?m=s&t='+time+'&k='+pssw;
},
tileSize: new google.maps.Size(256, 256),
maxZoom: 15,
minZoom: 7,
opacity: 1,
isPng: true,
name: 'MapTurist'
};
var mapTuristType = new google.maps.ImageMapType(mapTuristOptions);
//map.gmap.mapTypes.set('MAPT', map.maptypeturist);
//map.gmap.setMapTypeId('MAPT');
//map.gmap.overlayMapTypes.push(tl);
//map.gmap.overlayMapTypes.insertAt(0, tl);
//var mt = new GMapType([tl], G_SATELLITE_MAP.getProjection(), "MAPT", {errorMessage:null});
//mt.getErrorMessage = function() { return "Pro toto p?iblí?ení není k dispozici mapový podklad.
Zkuste oddálit mapový vý?ez.
Tato mapa je navíc dostupná pouze pro ?eskou republiku a Slovensko."; };
//return mt;
return mapTuristType;
}
// map type - OSM
function NewTileMapOSM(pssw, time) {
var mapTuristOSMOptions = {
getTileUrl: function(tile, zoom) {
return 'http://tile.openstreetmap.org/' + zoom + '/' + tile.x + '/' + tile.y + '.png';
},
tileSize: new google.maps.Size(256, 256),
maxZoom: 15,
minZoom: 7,
opacity: 1,
isPng: true,
name: 'OpenStreetMap'
};
mapTuristOSMOptions.copyright = '© OpenStreetMap contributors';
var mapTuristOSMType = new google.maps.ImageMapType(mapTuristOSMOptions);
return mapTuristOSMType;
}
// map type - turist/cyklo
/*function NewTileMapTuristCyklo() {
}*/
// map overlay - cz / sk wms
/*
function NewWMSOverlay() {
var tl = new GTileLayer(null, null, null, {opacity:1, isPng:true});
tl.getTileUrl = function(tile, zoom) {
x1 = tile.x * 256;
y1 = tile.y * 256;
x2 = tile.x * 256 + 256;
y2 = tile.y * 256 + 256;
proj = G_NORMAL_MAP.getProjection();
gps1 = proj.fromPixelToLatLng(new GPoint(x1, y2), zoom);
gps2 = proj.fromPixelToLatLng(new GPoint(x2, y1), zoom);
cs = gps1.lng() + '/' + gps1.lat() + '/' + gps2.lng() + '/' + gps2.lat();
var url = "http://www.kamennimuzici.cz/mapa/wmstile.php?c=" + cs;
return url;
};
tl.minResolution = function() { return 7; };
tl.maxResolution = function() { return 19; };
tl.isPng = function() { return true; };
tl.getOpacity = function() { return 1; }
tl.getCopyright = function() { return ""; }
var tlo = new GTileLayerOverlay(tl, null);
return tlo;
} */