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