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 = "
" + pismeno + "" + informace.address + " zobrazit na mapě
"; 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 (); } };