get("GML"); if ($gml_string) { //To parse gml extent header $gml2String = "".$gml_string; //$e = new mb_exception("renderGML:".$gml2String); libxml_use_internal_errors(true); try { $gml2 = simplexml_load_string($gml2String); if ($gml2 === false) { foreach(libxml_get_errors() as $error) { $err = new mb_exception("javascripts/mod_renderGML.php: ".$error->message); } throw new Exception("javascripts/mod_renderGML.php: ".'Cannot parse SESSION GML!'); return false; } } catch (Exception $e) { $err = new mb_exception("javascripts/mod_renderGML.php: ".$e->getMessage()); return false; } //if parsing was successful if ($gml2 !== false) { $gml2->addAttribute('xmlns:gml', 'http://www.opengis.net/gml'); $gml2->registerXPathNamespace("default", "http://www.opengis.net/gml"); $gml2->registerXPathNamespace("gml", "http://www.opengis.net/gml"); if ($gml2->xpath('/FeatureCollection/featureMember/*/*/MultiPolygon')) { $e = new mb_notice("javascripts/mod_renderGML.php: MultiPolygon found!"); $multiPolygon = $gml2->xpath('/FeatureCollection/featureMember/*/*/MultiPolygon'); $multiPolygonGml = $multiPolygon[0]->asXML(); $e = new mb_notice("javascripts/mod_renderGML.php: MultiPolygon: ".$multiPolygonGml); $currentEpsg = Mapbender::session()->get("epsg"); $e = new mb_notice("javascripts/mod_renderGML.php: currentEpsg: ".$currentEpsg); if ($currentEpsg !== '4326') { $sql = "SELECT st_asgml(st_transform(st_geomfromgml($1),$2::INT),2) AS geom"; $v = array($multiPolygonGml, $currentEpsg); $t = array('s', 'i'); $res = db_prep_query($sql,$v,$t); db_fetch_row($res); $multiPolygonGml = db_result($res, 0, 'geom'); } } } } //select asewkt(transform(st_geomfromgml('6,48 8,48 8,51 6,51 6,48'),25832)); /*6,48 8,51BBOX*/ //$e = new mb_exception("renderGml invoked!"); if ($gml_string) { $gml = new gml2(); if (isset($multiPolygonGml)) { $gml->parse_xml(''.$multiPolygonGml.''); } else { $gml->parse_xml($gml_string); } echo "Mapbender.events.afterInit.register(highlight_init);\n"; echo "function highlight_init() {\n"; echo "var mf = new Array("; for ($i=0; $i0) echo ", "; echo "'".$e_target[$i]."'"; } echo ");\n"; echo "hl = new Highlight(mf, 'GML_rendering', {'position':'absolute', 'top':'0px', 'left':'0px', 'z-index':" . GML_HIGHLIGHT_Z_INDEX . "});\n"; echo $gml->exportMemberToJS(0, false); echo "hl.add(q);\n"; echo "hl.paint();\n"; echo "mb_registerSubFunctions('hl.paint()');\n"; echo "}\n"; $e = new mb_notice("renderGML: GML: " . $multiPolygonGml . "; EPSG:" . $currentEpsg); Mapbender::session()->set("GML",NULL); $e = new mb_notice("renderGML: deleting GML..."); } else { $e = new mb_notice("renderGML: no GML."); } ?>