// google maps skript pro načtení pointů z XML zdroje
//google.load("maps", "2.x");
$(document).ready(initializeGMaps);
// pole všech značek
var global_markers = new Array();
// pole ikonek
var icons = new Array();
// mapa
var map;
// hranice pro zobrazeni mapy
var bounds;
// vytvoříme typy značek
icons["type1"] = "/img/map/flatg.png";
icons["type2"] = "/img/map/ico-devel-disabled.png";
// Inicializace mapy
function initializeGMaps() {
// určení DIVu, který obsahuje mapu
map = new GMap2(document.getElementById("map"));
map.enableContinuousZoom();
//map.enableScrollWheelZoom();
// Overwrite the getMinimumResolution() and getMaximumResolution() methods
var mt = map.getMapTypes();
for (var i= 0; i < mt.length; i++) {
mt[i].getMinimumResolution = function() {
return 7;
}
}
// přidání ovládacích prvků na mapu (zoomovadlo, přepínač a náhled)
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
//map.addControl(new GOverviewMapControl());
// vytvorime prazdny objekt pro definici hranic zobrazeni
bounds = new GLatLngBounds();
// určení výchozí polohy a měřítka mapy
basePoint = new GLatLng(48.60479636026121, 19.7039794921875);
map.setCenter(basePoint, 7);
downloadMap("/utils/xmlexport");
// listener pro nahrani nemovitosti dle aktualniho vyrezu mapy
GEvent.addListener(map, "dragend", function() {
synchronizeMap();
if ( typeof updateElements == "function") {
updateElements();
}
});
GEvent.addListener(map, "zoomend", function() {
synchronizeMap();
if ( typeof updateElements == "function") {
updateElements();
}
});
}
function synchronizeMap() {
var span = map.getBounds().toSpan();
var center = map.getBounds().getCenter();
var zoom = map.getZoom();
if (zoom >= 11) {
var url = "/utils/synchro/?lat=" + center.lat() +
"&lng=" + center.lng() +
"&accuracy=" + span.lat()
;
addOverlays(url);
}
}
function downloadMap(url) {
// Načtení a zpracování dat z XML souboru
GDownloadUrl(url, function(data, responseCode) {
var xml = GXml.parse(data);
var s;
var points;
var innerHtml = "Zobrazilo sa iba 200 najnovších výsledkov. Pre získanie ďalších upresnite kritériá v rozšírenom vyhľadávaní
";
if (navigator.appName=="Microsoft Internet Explorer") {
points = xml.getElementsByTagName("point");
} else {
points = xml.documentElement.getElementsByTagName("point");
}
// pokud neni zadnej bod v exportu, tak nastavime hranice na CR
if (points.length == 0) {
basePoint1 = new GLatLng(49.5, 23.0);
basePoint2 = new GLatLng(48.5, 15.5);
bounds.extend(basePoint1);
bounds.extend(basePoint2);
} else if (points.length >= 200) {
var dialog = $("#dialog");
var message = $("#dialog-message");
dialog.css("display", "block");
message.html(innerHtml);
}
// for přes všechny body v XML souboru
for (var i = 0; i < points.length; i++) {
// souřadnice bodu
var point = new GLatLng(parseFloat(points[i].getAttribute("lng")),
parseFloat(points[i].getAttribute("lat")));
// pridame bod do hranic zobrazeni
bounds.extend(point);
// vytvoreni obsahu
s = createContent(points[i]);
// vytvoření značky
var marker = createMarker(point, s, points[i].getAttribute("label"), points[i].getAttribute("icon"));
// přidání značky do globálního pole
marker_id = points[i].getAttribute("id");
global_markers [marker_id] = marker;
// přidání značky na mapu
map.addOverlay(marker);
}
map.setZoom(map.getBoundsZoomLevel(bounds));
map.setCenter(bounds.getCenter());
if ( typeof updateElements == "function") {
updateElements();
}
});
}
function addOverlays(url) {
// Načtení a zpracování dat z XML souboru
GDownloadUrl(url, function(data, responseCode) {
var xml = GXml.parse(data);
var s;
var points = xml.documentElement.getElementsByTagName("point");
// for přes všechny body v XML souboru
for (var i = 0; i < points.length; i++) {
// pokud je jiz marker v poli, tak jej neni potreba pridavat
if (global_markers[points[i].getAttribute("id")]) {
continue;
}
// souřadnice bodu
var point = new GLatLng(parseFloat(points[i].getAttribute("lng")),
parseFloat(points[i].getAttribute("lat")));
// vytvoreni obsahu
s = createContent(points[i]);
// vytvoření značky
var marker = createMarker(point, s, points[i].getAttribute("label"), points[i].getAttribute("icon"));
// přidání značky do globálního pole
marker_id = points[i].getAttribute("id");
global_markers [marker_id] = marker;
// přidání značky na mapu
map.addOverlay(marker);
}
});
}
function infoClick(i) {
GEvent.trigger(global_markers[i], "click");
}
function createContent(point) {
// html obsah informačního okna, které se zobrazi
s = "
| " + point.getAttribute("video") + " | "; } else if (point.getAttribute("img")) { s = s + "";
// test if url exists
if (point.getAttribute("url")) {
s = s + "" + point.getAttribute("name") + " "; } else { s = s + "" + point.getAttribute("name") + " "; } s = s + point.getAttribute("label").replace(/2<\/sup>,/, '2, ') + " "; if (point.getAttribute("url")) { s = s + "Detail » "; } s = s + " |