Fehler bei Name
";} $cnt = 0; $gwgem=""; while($row = pg_fetch_array($res)) { $gemname=$row["gemname"]; $gemnr=$row["gemeinde"] ; if ($gwgem != $gemname) { if ($gfilter != 1) { zeile_gemeinde($gemnr, $gemname, false); // ToDo: aber ohne Link oder Link verarbeiten können } $gwgem=$gemname; } $gkey=$row["schluesselgesamt"]; // Land-RegBez-Kreis-Gem-Strasse - für weitere Suche $skey=$row["lage"]; // Nur Str.-schl. daraus $kgml=$row["gml_id"]; // ID von Katalog // +++ in function_zeile_strasse() $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); echo "\n\t".$cnt." Straßen ... und weitere
"; } elseif ($cnt > 1) { echo "\n".$cnt." Straßen
"; } return; } function suchStrKey() { // Strassen nach num. Schluessel global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug, $auskpath; $linelimit=60; if(preg_match("/\*/",$street)) { $match=trim(preg_replace("/\*/i","%",$street)); // fuehrende Nullen eingeben oder fuehrende Wildcard } else { $match=str_pad($street, 5, "0", STR_PAD_LEFT); // "Wie eine Zahl" verarbeiten } $sql ="SELECT g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage "; $sql.="FROM ax_lagebezeichnungkatalogeintrag as k "; $sql.="JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde "; $sql.="WHERE k.lage LIKE $1 "; switch ($gfilter) { case 1: // Einzelwert $sql.="AND k.gemeinde=".$gemeinde." "; break; case 2: // Liste $sql.="AND k.gemeinde in (".$gemeinde.") "; break; } $sql.="ORDER BY k.lage, k.bezeichnung LIMIT $2 ;"; $v=array($match,$linelimit); $res=pg_prepare("", $sql); $res=pg_execute("", $v); if (!$res) {return "\nFehler bei Schlüssel
";} $cnt = 0; while($row = pg_fetch_array($res)) { $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); $gkey=$row["schluesselgesamt"]; $gemname=htmlentities($row["gemname"], ENT_QUOTES, "UTF-8"); $skey=$row["lage"]; $kgml=$row["gml_id"]; // ID von Katalog // +++ in function_zeile_strasse() echo "\n\tKeine Straße mit Schlüssel ".$match."
"; } elseif($cnt == 1) { // Eindeutig $str_schl=$gkey; // dann gleich weiter } elseif ($cnt >= $linelimit) { echo "\n".$cnt." Straßen ... und weitere
"; } elseif ($cnt > 1) { echo "\n".$cnt." Straßen
"; } return; } function suchHausZurStr($showParent) { // Haeuser zu einer Strasse global $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $epsg, $gfilter, $debug, $auskpath; // Head // Strasse zum Strassenschluessel $sql ="SELECT g.bezeichnung AS gemname, k.gml_id AS kgml, k.bezeichnung, k.land, k.regierungsbezirk, k.kreis, k.gemeinde, k.lage "; $sql.="FROM ax_lagebezeichnungkatalogeintrag as k "; $sql.="JOIN ax_gemeinde g ON k.land=g.land AND k.regierungsbezirk=g.regierungsbezirk AND k.kreis=g.kreis AND k.gemeinde=g.gemeinde "; $sql.="WHERE k.schluesselgesamt = $1 LIMIT 1"; $v=array($str_schl); // Schluessel-Gesamt .. $res=pg_prepare("", $sql); $res=pg_execute("", $v); if($row = pg_fetch_array($res)) { // .. gefunden $kgml=$row["kgml"]; // ID aus Katalog $sname=$row["bezeichnung"]; $land =$row["land"]; // Einzel-Felder für JOIN _lagebezeichnung_ $regb =$row["regierungsbezirk"]; $kreis=$row["kreis"]; $gemnd=$row["gemeinde"]; $nr=$row["lage"]; $gemname=htmlentities($row["gemname"], ENT_QUOTES, "UTF-8"); if ($showParent) { // EINE Koordinate zur Strasse besorgen // ax_Flurstueck >zeigtAuf> ax_LagebezeichnungOhneHausnummer $sqlko ="SELECT "; if($epsg == "25832") { // Transform nicht notwendig $sqlko.="st_x(st_Centroid(f.wkb_geometry)) AS x, "; $sqlko.="st_y(st_Centroid(f.wkb_geometry)) AS y "; } else { $sqlko.="st_x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, "; $sqlko.="st_y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y "; } $sqlko.="FROM ax_lagebezeichnungohnehausnummer o "; $sqlko.="JOIN alkis_beziehungen v ON o.gml_id=v.beziehung_zu "; $sqlko.="JOIN ax_flurstueck f ON v.beziehung_von=f.gml_id "; $sqlko.="WHERE o.land= $1 AND o.regierungsbezirk= $2 AND o.kreis= $3 AND o.gemeinde= $4 AND o.lage= $5 "; $sqlko.="AND v.beziehungsart='zeigtAuf' LIMIT 1;"; // die erstbeste Koordinate $v=array($land,$regb,$kreis,$gemnd,$nr); $resko=pg_prepare("", $sqlko); $resko=pg_execute("", $v); if ($resko) { $rowko=pg_fetch_array($resko); $x=$rowko["x"]; $y=$rowko["y"]; } else { echo "\nFehler bei Koordinate zur Straße
"; } // +++ IN ARBEIT: echo "\n\tSQL='".$sql."'
Array=".$v[]."
"; echo "".$hsnr.""; echo " | "; $cnt++; $count++; if($count == 6) { echo "\n
".$cnt." Hausnummern
"; } } else { echo "\nKeine Straße
"; } return; } // =========== // Start hier! // =========== if(isset($epsg)) { $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]); } else { $epsg=$gui_epsg; // aus Conf } if ($gemeinde == "") { $gfilter = 0; // ungefiltert } elseif(strpos($gemeinde, ",") === false) { $gfilter = 1; // Einzelwert } else { $gfilter = 2; // Liste } // +++ Zerlegung Eingabe aus "Balken" von Buchauskunft "Lage": // Numerisch: Gem-Str-Haus-lfd if ($str_schl != "") { // aus Link $trans="Hausnummern zur Straße"; suchHausZurStr(true); } elseif($street != "") { // Eingabe in Form if (trim($street, "*,0..9") == "") { // Zahl, ggf. mit Wildcard $trans="Suche Straßenschlüssel \"".$street."\""; suchStrKey(); } else { $trans="Suche Straßenname \"".$street."\""; suchStrName(); } if(isset($str_schl)) { // Eindeutiges Ergebnis $trans="1 Straße gefunden, Hausnummern"; suchHausZurStr(false); } } // Titel im Kopf anzeigen echo " "; ?>