var jhf_karte = null; var geocoder = null; var jhf_GDirections = null; var jhf_strassenansicht = null; var jhf_usermarker_url = "http://www.buga-2011.de/grel/position.png"; var jhf_usermarker_icon = new GIcon(); jhf_usermarker_icon.image = jhf_usermarker_url; jhf_usermarker_icon.iconSize = new GSize(27, 31); jhf_usermarker_icon.iconAnchor = new GPoint(9, 31); jhf_usermarker_icon.infoWindowAnchor = new GPoint(9, 31); // Routenplaner /////////// _TrackedCenter=new Array(); _TrackedCenter[0] = 0; _TrackedCenter[1] = 0; _Loaded = 0; jhf_benutzerpunkte = new Array(); _PolyOverlay=''; /////////////////////////// function erstelle_marker (nLaenge, nBreite, cIconURL, cText) { var oIcon=new GIcon(); oIcon.image = cIconURL; oIcon.iconSize = new GSize(40, 50); oIcon.iconAnchor = new GPoint(20, 50); oIcon.infoWindowAnchor = new GPoint(40, 50); var oMarker = new GMarker(new GLatLng(nLaenge, nBreite), oIcon); if(cText != "") { GEvent.addListener(oMarker, "click", function() {oMarker.openInfoWindowHtml(cText);}); } return (oMarker); } function jhf_geo_init(nLaenge, nBreite, nZoom) { if (GBrowserIsCompatible()) { jhf_karte = new GMap2(document.getElementById("jhf_karte")); jhf_karte.setCenter(new GLatLng(nBreite, nLaenge), nZoom); jhf_karte.setMapType(G_HYBRID_MAP); GEvent.addListener(jhf_karte, "zoomend", function() { jhf_geo_breite_diff_km(); }); jhf_geo_breite_diff_km(); GEvent.addListener(jhf_karte,"click", function(overlay,latlng) {jhf_karte_klick(overlay,latlng)}); var womopps = new GIcon(); womopps.image = "http://www.wohnmobile.net/grel/womo-parkplatz-icon.png"; womopps.iconSize = new GSize(44, 44); womopps.iconAnchor = new GPoint(22, 44); womopps.infoWindowAnchor = new GPoint(22, 44); // jhf_karte.addOverlay(new GMarker(jhf_karte.getCenter())); var poi; geocoder = new GClientGeocoder(); jhf_GDirections = new GDirections(jhf_karte, document.getElementById('meldungen') ); } } function showAddress(address) { address = address + ", DE" if (geocoder) { geocoder.getLatLng( address, function(point) { if (!point) { alert(address + " not found"); } else { jhf_karte.setCenter(point, 18); var marker = new GMarker(point); jhf_karte.addOverlay(marker); marker.openInfoWindowHtml(address); } } ); } } function jhf_erstelle_positionseintrag (nLaenge, nBreite, cIconURL, cText) { var oIcon=new GIcon(); oIcon.image = cIconURL; oIcon.iconSize = new GSize(40, 50); oIcon.iconAnchor = new GPoint(20, 50); oIcon.infoWindowAnchor = new GPoint(40, 50); var oMarker = new GMarker(new GLatLng(nLaenge, nBreite), oIcon); if(cText != "") { GEvent.addListener(oMarker, "click", function() {oMarker.openInfoWindowHtml(cText);}); } jhf_karte.addOverlay(oMarker); } function jhf_erstelle_positionseintrag2 (nLaenge, nBreite, cIconURL, cText, nIconSizeX, nIconSizeY, nIconAnkerX, nIconAnkerY) { var oIcon=new GIcon(); oIcon.image = cIconURL; oIcon.iconSize = new GSize(nIconSizeX, nIconSizeY); oIcon.iconAnchor = new GPoint(nIconAnkerX, nIconAnkerY); oIcon.infoWindowAnchor = new GPoint(nIconSizeX, nIconSizeY); var oMarker = new GMarker(new GLatLng(nLaenge, nBreite), oIcon); if(cText != "") { GEvent.addListener(oMarker, "click", function() {oMarker.openInfoWindowHtml(cText);}); } jhf_karte.addOverlay(oMarker); } function jhf_loesche_positionseintraege() { jhf_karte.clearOverlays(); } function jhf_geo_zoom(nZoom) { jhf_karte.setZoom(nZoom + 4); } function jhf_geo_zoom_rel(nZoomDiff) { nZoomneu = jhf_karte.getZoom()+nZoomDiff; // alert("Zoomfaktor "+ nZoomneu); jhf_karte.setZoom(jhf_karte.getZoom()+nZoomDiff); } function jhf_geo_move(nX, nY) { jhf_karte.panDirection(nX, nY); } function jhf_geo_kartentyp(cTyp) { if (cTyp == "Satellit") { jhf_karte.setMapType(G_HYBRID_MAP); } else { jhf_karte.setMapType(G_NORMAL_MAP); } } function jhf_geo_breite_diff_km() { var oGrenze = jhf_karte.getBounds(); var oSW = oGrenze.getSouthWest(); var oNE = oGrenze.getNorthEast(); var oSO = new GLatLng(oSW.lat(), oNE.lng()); var oNW = new GLatLng(oNE.lat(), oSW.lng()); var nBreite = oSW.distanceFrom(oSO); var nHoehe = oSW.distanceFrom(oNW); // alert(nBreite); // alert(nHoehe); // document.jhf_geo_breite_diff_km.jhf_breite.value = nBreite; // document.getElementById("jhf_breite_km").innerHTML = "Zoomstufe "+(jhf_karte.getZoom()-4)+" / "+(nBreite/1000)+" km Ausschnittbreite"; nBreite = nBreite/1000; nHoehe = nHoehe/1000; var cBreite = nBreite.toFixed(3); var nPos = cBreite.indexOf(".", 0); cBreite = cBreite.substring(0, nPos) + "," + cBreite.substring(nPos + 1) var cHoehe = nHoehe.toFixed(3); nPos = cHoehe.indexOf(".", 0); cHoehe = cHoehe.substring(0, nPos) + "," + cHoehe.substring(nPos + 1) var cQuelle = document.getElementById("jhf_breite_km").title; var cSuchText = "%%BREITE%%"; nPos = cQuelle.indexOf(cSuchText, 0); while (nPos >= 0) { cQuelle = cQuelle.substring(0, nPos) + cBreite + cQuelle.substring(nPos + cSuchText.length); nPos = cQuelle.indexOf(cSuchText, nPos + cBreite.length); } cSuchText = "%%HOEHE%%"; nPos = cQuelle.indexOf(cSuchText, 0); while (nPos >= 0) { cQuelle = cQuelle.substring(0, nPos) + cHoehe + cQuelle.substring(nPos + cSuchText.length); nPos = cQuelle.indexOf(cSuchText, nPos + cHoehe.length); } document.getElementById("jhf_breite_km").innerHTML = cQuelle; } function jhf_karte_klick (overlay,latlng) { jhf_route_setze_start(latlng.lat(), latlng.lng()) } /// Strassenansicht /// function jhf_strassenansicht_init(nX, nY) { var oStartpunkt = new GLatLng(nX, nY); // var jhf_GStreetviewClient = new GStreetviewClient(); panoramaOptions = { latlng:oStartpunkt }; jhf_strassenansicht = new GStreetviewPanorama(document.getElementById("jhf_karte"), panoramaOptions); GEvent.addListener(jhf_strassenansicht, "error", jhf_handleNoFlash); } function jhf_handleNoFlash(errorCode) { if (errorCode == FLASH_UNAVAILABLE) { alert("Fehler: Ihr Browser scheint kein Flash zu unterstützen"); return; } if (errorCode == NO_NEARBY_PANO) { alert("Fehler: Keine Strassenansicht verügbar"); return; } } /// Routenplaner /// function ChangeTitle(NewTitle) { document.title = NewTitle; } function createMarker(point, html, icon) { var marker = new GMarker(point,icon); // Show this marker's index in the info window when it is clicked GEvent.addListener(marker, "click", function() { marker.openInfoWindowHtml(html); }); return marker; } function PermUrl() { var newurl = 'http://www.buga-2011.de/Stadtplan-Koblenz.php?perm=1&zoom=' + jhf_karte.getZoom(); var new_center = jhf_karte.getCenter(); newurl = newurl + '&start=' + new_center.x + ',' + new_center.y var drive = document.getElementById('drive').value; if (drive > 0) { newurl = newurl + '&drive=1'; } if (document.getElementById('ordered') && document.getElementById('ordered').value) { newurl = newurl + '&ordered=' + document.getElementById('ordered').value; } for (var c in jhf_benutzerpunkte){ newurl = newurl + '&p=' + c; } document.location = newurl; } function LoadPermUrl() { var zoomlevel='7'; var currCenter = jhf_karte.getCenter(); var center = currCenter.x + ',' + currCenter.y; if(document.location.search != "" && document.location.search != "?drive=1"){ var pairs = document.location.search.substring(1).split("&"); for (var i=0; i < pairs.length; i++){ var values = pairs[i].split("="); if (values[0] == 'zoom') { zoomlevel = values[1]; } else if (values[0] == 'start') { center = values[1]; } } var centerll = center.split(','); jhf_karte.centerAndZoom(new GPoint(centerll[0],centerll[1]),zoomlevel); for (var i=0; i < pairs.length; i++){ var values = pairs[i].split("="); if (values[0] == 'p') { var newover = values[1].split(','); jhf_karte.addOverlay(new GMarker(new GPoint(newover[0],newover[1]))); jhf_benutzerpunkte[values[1]]=1; } } var s = document.createElement( "script" ); s.src = 'http://www.buga-2011.de/t' + document.location.search; s.type = "text/javascript"; document.getElementsByTagName( "head" )[0].appendChild( s ); } } function _getInitialUrl() { var newurl = 'http://www.buga-2011.de/t?r=1'; if (!jhf_karte) { return undef; } var new_center = jhf_karte.getCenter(); newurl = newurl + '&start=' + new_center.x + ',' + new_center.y var drive = document.getElementById('drive').value; if (drive > 0) { newurl = newurl + '&drive=1'; } if (document.getElementById('ordered') && document.getElementById('ordered').value) { newurl = newurl + '&ordered=' + document.getElementById('ordered').value; } for (var c in jhf_benutzerpunkte){ newurl = newurl + '&p=' + c; } //alert(newurl); return newurl; } function GetRouteOrdered(crow) { if (crow) { document.getElementById('drive').value=0; } else { document.getElementById('drive').value=1; } document.getElementById('ordered').value=1; GetRoute(); } function GetRouteOptimized(crow) { if (crow) { document.getElementById('drive').value=0; } else { document.getElementById('drive').value=1; } document.getElementById('ordered').value=0; GetRoute(); } function GetRoute() { var drive = document.getElementById('drive').value; if (drive > 0 && jhf_karte.getZoom() < 11) { myCBE("Bitte Kartenausschnitt verkleinern! "+jhf_karte.getZoom()); return; } var s = document.createElement( "script" ); s.src = _getInitialUrl(); s.type = "text/javascript"; document.getElementsByTagName( "head" )[0].appendChild( s ); // alert(s.src); if (_PolyOverlay) { jhf_karte.removeOverlay(_PolyOverlay); } var points = []; document.getElementById('results').innerHTML=''; document.getElementById('directions').innerHTML='

DIRECTIONS:'; _PolyOverlay = new GPolyline(points); jhf_karte.addOverlay(_PolyOverlay); document.getElementById('results').innerHTML=document.getElementById('results').innerHTML + "

Totals: 0 mi"; } function StartOver() { jhf_karte.clearOverlays(); jhf_benutzerpunkte = new Array(); _PolyOverlay=''; jhf_karte.clearOverlays(); // add_center_point(); } function Recenter() { jhf_karte.clearOverlays(); jhf_benutzerpunkte = new Array(); _PolyOverlay=''; jhf_karte.clearOverlays(); // add_center_point(); } function add_center_point() { if (!jhf_karte) { return undef; } var mycenter = jhf_karte.getCenter(); jhf_karte.addOverlay(new GMarker(new GPoint(mycenter.x, mycenter.y))); var pkey = mycenter.x + ',' + mycenter.y; jhf_benutzerpunkte[pkey]=1; } var redicon = new GIcon(); redicon.image = 'http://www.buga-2011.de/grel/position.png'; redicon.iconSize = new GSize(20,34); redicon.shadow = 'http://www.buga-2011.de/grel/position.png'; redicon.shadowSize = new GSize(37,34); redicon.iconAnchor = new GPoint(0,0); redicon.infoWindowAnchor = new GPoint(10,10); function DecodePoints(Vb){ var Ih=Vb.length; var pb=0; var ba=new Array(); var Ka=0; var Pa=0; while(pb=32); Ka=Ka+(Fa&1?~(Fa>>1):Fa>>1); ba.push(Ka/100000); oc=0; Fa=0; do{ ub=Vb.charCodeAt(pb++)-63; Fa|=(ub&31)<=32); Pa=Pa+(Fa&1?~(Fa>>1):Fa>>1); ba.push(Pa/100000) } return ba; } var timerID; function ShowLayer(id) { document.getElementById(id).style.display = "block"; } function HideTimedLayer(id) { clearTimeout(timerID); document.getElementById(id).style.display = "none"; document.getElementById('meldungen').innerHTML='Please wait...'; } function timedLayer(id,tlen) { ShowLayer(id); setTimeout("HideTimedLayer(\"" + id + "\")", tlen); } function myCBE(themssg) { if (themssg.length) { document.getElementById('meldungen').innerHTML=themssg; timedLayer('meldungen',5000); } } function AddMark() { myCBE('loading geography...'); var loc = document.getElementById("addmarkloc").value; AddJS('http://www.buga-2011.de/geo/?cbe=myCBE&cb=PlaceMarker&loc=' + escape(loc) + '&s=1'); myCBE('location loaded!'); document.getElementById("addmarkloc").value=''; } function PlaceMarker(latitude,longitude) { if (!latitude || !longitude) { return false; } var pkey = longitude+' '+latitude; var thispoint = new GPoint(longitude,latitude); jhf_karte.addOverlay(new GMarker(thispoint, jhf_usermarker_icon)); // jhf_benutzerpunkte[pkey]=longitude+', '+latitude; jhf_benutzerpunkte[jhf_benutzerpunkte.length]=latitude+', '+longitude; if (jhf_karte.getZoom() >= 8) { // jhf_karte.centerAndZoom(thispoint,5); } } function EGeoLookup() { var loc = document.getElementById('geolookup').value; var reg = /^(\w{2}):\s*(.+)$/; var match = reg.exec(loc); var newurl = ''; if (match && match[1] && match[2]) { newurl = 'http://www.buga-2011.de/geo/?cbe=myCBE&loc=' + escape(match[2]) + '&country='+escape(match[1])+'&s=1'; } else { newurl = 'http://www.buga-2011.de/geo/?cbe=myCBE&loc=' + escape(loc) + '&s=1'; } AddJS(newurl); } function EIpLookup() { AddJS('http://www.buga-2011.de/geo/?cbe=myCBE&by_ip=1'); } function CGeoLookup() { timedLayer('meldungen',2000); EGeoLookup(); document.getElementById('geolookup').value=''; } function CIpLookup() { timedLayer('meldungen',2000); document.getElementById('geolookup').value=''; EIpLookup(); } function AddJS(mysrc) { var sz = document.createElement( "script" ); sz.src = mysrc; sz.type = "text/javascript"; document.getElementsByTagName( "head" )[0].appendChild( sz ); } function OnLoader() { timedLayer('meldungen',2000); LoadPermUrl(); ShowTypeMssg(); } function ShowTypeMssg() { var currview=''; var newview=''; var newurladd = ''; var drive = document.getElementById('drive').value; if (drive) { currview='driving paths'; } else { currview='as the crow flies'; newurladd='?drive=1'; } document.getElementById('typeview').innerHTML='You are currently looking up by "' + currview + '"'; } function DrawMapDiv() { var Height = 0; var Width = 0; var Unit='px'; if (self.innerWidth) { Height=self.innerHeight; Width=self.innerWidth; } else if (document.documentElement && document.documentElement.clientHeight) { Height=document.documentElement.clientHeight; Width=document.documentElement.clientWidth; } else if (document.body) { Height = document.body.clientHeight; Width = document.body.clientWidth; } else { Height="100"; Width="80"; Unit='%'; } if (Unit == 'px') { Height = Height - 50; Width = Width - 220; } // document.getElementById('jhf_karte').style.width=Width + Unit; // document.getElementById('jhf_karte').style.height=Height + Unit; /////////// JHF document.write('

'); } function jhf_route_setze_start(nLat, nLng) { if (!nLat || !nLng) { return false; } var cKey = nLng+' '+nLat; var oPunkt = new GPoint(nLng,nLat); jhf_karte.addOverlay(new GMarker(oPunkt, jhf_usermarker_icon)); jhf_benutzerpunkte[0]=nLat+', '+nLng; if (jhf_karte.getZoom() >= 8) { // jhf_karte.centerAndZoom(oPunkt,5); } } function jhf_route_setze_ziel(nLat, nLng) { if (!nLat || !nLng) { return false; } var cKey = nLng+' '+nLat; var oPunkt = new GPoint(nLng,nLat); jhf_karte.addOverlay(new GMarker(oPunkt, jhf_usermarker_icon)); jhf_benutzerpunkte[1]=nLat+', '+nLng; } function jhf_route(cTyp) { // jhf_GDirections.load("from: Markenbildchenweg 15, DE 56068 Koblenz to: Neuendorfer Strasse 6, DE 56070 Koblenz", {travelMode:G_TRAVEL_MODE_WALKING} ); // alert(print_r(jhf_benutzerpunkte)); // jhf_benutzerpunkte = new Array("50.36240977123788, 7.611079216003418", "50.362053869445255, 7.604641914367676"); cDeutschesEck = "50.3638061, 7.6055155"; if (cTyp == "loesche") { jhf_benutzerpunkte = []; jhf_GDirections.clear(); return; } if (!jhf_benutzerpunkte[0] || !jhf_benutzerpunkte[1]) { // document.getElementById('meldungen').innerHTML = 'Bitte markieren Sie Ihren Startpunkt mit einem Klick auf die Karte und wählen Sie dann "Anfahrt" oder "zu Fuss"'; // alert("Bitte markieren Sie Ihren Startpunkt mit einem Klick auf die Karte"); return; } if (jhf_benutzerpunkte.length < 2) { // jhf_benutzerpunkte[jhf_benutzerpunkte.length] = cDeutschesEck; } // // alert(print_r(jhf_benutzerpunkte)); // alert(cTyp); if (cTyp == "kfz") { jhf_GDirections.loadFromWaypoints(jhf_benutzerpunkte); } if (cTyp == "zufuss") { jhf_GDirections.loadFromWaypoints(jhf_benutzerpunkte, {travelMode:G_TRAVEL_MODE_WALKING}); } if (jhf_benutzerpunkte[jhf_benutzerpunkte.length] == cDeutschesEck) { jhf_benutzerpunkte.pop(); } } function padding(laenge) { result = ''; for (i = 0; i < laenge; i++) result = result + '___'; return result; } function print_r(das_array, ebene) { var result = ''; for (var wert in das_array) if (typeof das_array[wert] == "object") result = result + ' ' + padding(ebene) + wert + "\n" + print_r(das_array[wert], ebene + 1); else result = result + ' ' + padding(ebene) + wert + ' = ' + das_array[wert] + "\n"; return result; } ////////////////////////////////////////////////////////////////////////////////