//tolerance when we ask wfs (comes from conf file) if(typeof(mb_wfs_tolerance)==='undefined') { var mb_wfs_tolerance = 8; } var targetArray = tooltipTarget.split(","); //initialize Element Vars //destination frame for the request (creates Popup if empty) if(typeof(tooltip_destinationFrame)==='undefined') var tooltip_destinationFrame = ""; if(typeof(tooltip_timeDelay)==='undefined') var tooltip_timeDelay = 1000; if(typeof(tooltip_styles)==='undefined') var tooltip_styles = ""; if(typeof(tooltip_width)==='undefined') var tooltip_width = 270; if(typeof(tooltip_height)==='undefined') var tooltip_height = 200; if(typeof(tooltip_styles_detail)==='undefined') var tooltip_styles_detail = ""; if(typeof(tooltip_disableWms)==='undefined') var tooltip_disableWms = "0"; if(typeof(tooltip_disableWfs)==='undefined') var tooltip_disableWfs = "0"; try{ var no_result_text = eval(tooltip_noResultArray); }catch(e){ var no_result_text = ["Kein Ergebnis.",'']; } var mouseMoves=0; var tooltipWin=null; var point; var tooltipWfsRequestCount = 0; var tooltipWmsRequestCount = 0; var numberOfFinishedWfsRequests = 0; var numberOfFinishedWmsRequests = 0; var visibleRequest = 0; var tooltipMsg = {'title':""}; function mod_tooltipInit(){ var tooltip_map = getMapObjByName(tooltipTarget); var ind = getMapObjIndexByName(tooltipTarget); var myMapObj = mb_mapObj[ind]; var map_el = myMapObj.getDomElement(); $(map_el.ownerDocument).mousemove(function(event){ point = tooltip_map.getMousePosition(event); //mb_getMousePos(event,myMapObj.getMousePosition(event)); mod_tooltip_run(point); }).mouseout(function(){ mouseMoves=0; }); } eventInit.register(mod_tooltipInit); function mod_tooltip_run(point){ mouseMoves++; var currentMouseMoves = mouseMoves; setTimeout(function () { if(point !== null && mouseMoves == currentMouseMoves) { fireRequests(point); } } ,tooltip_timeDelay ); } function fireRequests(point){ var ind = getMapObjIndexByName(tooltipTarget); var point_geom = new Geometry(geomType.point); point_geom.addPoint(mapToReal(tooltipTarget,point)); visibleRequest = 0; if(tooltip_disableWms != '1') { //FeatureInfo requests urls = mb_mapObj[ind].getFeatureInfoRequests(point); tooltipWmsRequestCount = urls.length; numberOfFinishedWmsRequests = 0; for(var j=0;j < urls.length;j++){ mb_ajax_post("../extensions/ext_featureInfoTunnel.php", {url:urls[j]}, checkFeatureInfoResults); } } if(tooltip_disableWfs != '1') { //WFS requests requests = getWfsRequests(tooltipTarget, point_geom, true); tooltipWfsRequestCount = requests.length; numberOfFinishedWfsRequests = 0; resultGeomArray = new GeometryArray(); for(var j=0;j< requests.length;j++){ (function () { var currentRequest = requests[j]; mb_ajax_post("../" + wfsResultModulePath + wfsResultModuleFilename,currentRequest,function(js_code,status){ var geom = new GeometryArray(); if (js_code && geom.importGeoJSON(js_code)) { if (typeof(currentRequest) === "object" && typeof(currentRequest.js_wfs_conf_id) !== "undefined") { for (var i = 0; i < geom.count(); i++) { geom.get(i).wfs_conf = parseInt(currentRequest.js_wfs_conf_id); } } } checkWfsResultsFinished(geom); }); }()); } } } function checkFeatureInfoResults(js_code,status){ numberOfFinishedWmsRequests++; //check if there are results if(js_code == ""){ if(!isFirstResult()) displayResultDoc(""); return; } for(var k=0;k < no_result_text.length;k++){ if(js_code.indexOf(no_result_text[k])!==-1){ if(!isFirstResult()) { displayResultDoc(""); } return; } } //output code displayResultDoc(js_code); } function checkWfsResultsFinished(g){ //check if all wfs requests arrived numberOfFinishedWfsRequests++; if (typeof(g) == 'object'){ resultGeomArray.union(g); } if (numberOfFinishedWfsRequests == tooltipWfsRequestCount) { if(resultGeomArray.count()>0){ //generate and output result //if(resultGeomArray.count()>1) { var html = createSimpleWfsResultHtml(resultGeomArray); //} //else { // var html = createDetailedWfsResultHtml(resultGeomArray); //} displayResultDoc(html); } else if(!isFirstResult()) displayResultDoc(""); } } function isFirstResult(){ return visibleRequest == 0; } function isLastResult(){ return (numberOfFinishedWfsRequests == tooltipWfsRequestCount && numberOfFinishedWmsRequests == tooltipWmsRequestCount); } function displayResultDoc(html){ //test if we have a fixed destination and create popup otherwise if(tooltip_destinationFrame=="") { return showBalloonFrame(html); } //put the frame there $("#"+tooltip_destinationFrame).each(function(){ var oDoc = this.contentWindow || this.contentDocument; if (oDoc.document) { oDoc = oDoc.document; } if(isFirstResult()) oDoc.open(); oDoc.write(html); if(isLastResult()) oDoc.close(); }); visibleRequest++; } function showBalloonFrame(html){ if(isFirstResult()){ //calculate Position x=point.x+parseInt(document.getElementById(tooltipTarget).style.left); y=point.y+parseInt(document.getElementById(tooltipTarget).style.top); //hide old Popup if(tooltipWin&&tooltipWin.isVisible()) tooltipWin.destroy(); //create Popup and append document tooltipWin = new mb_popup({html:'