var mapa = function (id) {
this.ukazAdresu = function (bod) {
if (bod == null) {
this.znacka.hide ();
document.getElementById ('mapaChyba').innerHTML = nenalezeno;
}
else {
this.mapa.setCenter (bod, this.priblizeni);
this.znacka.setLatLng (bod);
if (this.znacka.isHidden())
this.znacka.show ();
}
}
this.nastavMapu = function (bod) {
this.mapa.setCenter (bod, this.priblizeni);
}
this.nastavTypMapy = function (typ) {
this.mapa.setMapType (typ);
}
this.vytvorZnacku = function (index, informace) {
var pismeno = String.fromCharCode ("A".charCodeAt(0) + index);
var ikonaSPismenem = new GIcon (this.zakladniIkona);
ikonaSPismenem.image = "http://www.portalymest.cz/images/ikonyMapa/marker" + pismeno + ".png";
var znackaMoznosti = {icon:ikonaSPismenem};
var znacka = new GMarker (new GLatLng(informace.Point.coordinates[1], informace.Point.coordinates[0]), znackaMoznosti);
var htmlZnacky = "" + pismeno + "" + informace.nazev + "" + informace.address + "";
var oknoMoznosti = {maxWidth:350};
GEvent.addListener (znacka, "click", function () {
znacka.openInfoWindowHtml (htmlZnacky, oknoMoznosti);
});
var htmlVypisAdres = new String ();
htmlVypisAdres = "
";
var polozka = document.getElementById ("vypisAdres");
polozka.insertAdjacentHTML ("beforeEnd", htmlVypisAdres);
GEvent.addDomListener (document.getElementById ("pismeno" + pismeno), "click", function () {
znacka.openInfoWindowHtml (htmlZnacky, oknoMoznosti);
});
return znacka;
}
this.nactiOblast = function (adresy) {
this.mapa.clearOverlays ();
document.getElementById ('vypisAdres').innerHTML = '';
if (!adresy || adresy.Status.code != 200)
document.getElementById ('mapaChyba').innerHTML = 'Tuto adresu se nepodařilo vyhledat.';
else if (adresy.Placemark.length > 25)
document.getElementById ('mapaChyba').innerHTML = 'Bylo nalezeno příliš mnoho výsledků. Prosím, upřesněte vyhledávání.';
else {
this.oblast = new GLatLngBounds ();
var znacka;
for (var i = 0; i < adresy.Placemark.length; i++) {
adresy.Placemark[i].nazev = adresy.name;
znacka = this.vytvorZnacku (i, adresy.Placemark[i]);
this.mapa.addOverlay (znacka);
this.oblast.extend (znacka.getPoint ());
}
var polozka = document.getElementById ("vypisAdres");
polozka.insertAdjacentHTML ("beforeEnd", "
");
this.mapa.setZoom (this.mapa.getBoundsZoomLevel (this.oblast));
this.mapa.setCenter (this.oblast.getCenter());
}
}
this.najdiAdresu = function (adresa) {
var objekt = this;
this.geokoder.getLocations (adresa, function (adresy) {objekt.nactiOblast (adresy)});
}
if (GBrowserIsCompatible ()) {
//nacteni prvotnich souradnic
var pocatecniPozice = new GLatLng (49.866316729538674, 15.457763671875);
this.priblizeni = 6;
this.mapa = new GMap2 (document.getElementById (id));
this.mapa.setCenter (pocatecniPozice, this.priblizeni);
this.mapa.addControl (new GLargeMapControl ());
this.mapa.addMapType (G_PHYSICAL_MAP);
this.mapa.addControl (new GHierarchicalMapTypeControl ());
this.mapa.addControl (new GOverviewMapControl ());
this.geokoder = new GClientGeocoder();
this.zakladniIkona = new GIcon (G_DEFAULT_ICON);
this.zakladniIkona.shadow = "http://www.portalymest.cz/images/ikonyMapa/shadow50.png";
this.zakladniIkona.iconSize = new GSize (20, 34);
this.zakladniIkona.shadowSize = new GSize (37, 34);
this.zakladniIkona.iconAnchor = new GPoint (9, 34);
this.zakladniIkona.infoWindowAnchor = new GPoint (9, 2);
// var znackaMoznosti = {draggable : false};
// this.znacka = new GMarker (pocatecniPozice, znackaMoznosti);
// this.mapa.addOverlay (this.znacka);
// this.znacka.hide ();
}
};