Index: trunk/data/mapbender/http/nav/alkisnav_adr.php =================================================================== --- trunk/data/mapbender/http/nav/alkisnav_adr.php (revision 68) +++ trunk/data/mapbender/http/nav/alkisnav_adr.php (revision 83) @@ -1,4 +1,6 @@ in die Conf? @@ -40,5 +41,5 @@ $sql.="AND k.gemeinde=".$gemeinde." "; } - $sql.="ORDER BY k.bezeichnung, k.lage LIMIT $2 ;"; + $sql.="ORDER BY k.bezeichnung, g.bezeichnung, k.lage LIMIT $2 ;"; $v=array($match,$linelimit); $res=pg_prepare("", $sql); @@ -48,5 +49,5 @@ while($row = pg_fetch_array($res)) { $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); - $gkey=$row["schluesselgesamt"]; + $gkey=$row["schluesselgesamt"]; // Land-Kreis-Gem-Strasse $gemname=htmlentities($row["gemname"], ENT_QUOTES, "UTF-8"); $skey=$row["lage"]; @@ -57,5 +58,5 @@ echo $sname; // nicht brauchbar fuer ax_lagebezeichnungmithausnummer.lage (Integer) } - if (! isset($gemeinde)) {echo " in ".$gemname;} + if ($gemeinde == "") {echo " in ".$gemname;} echo ""; $cnt++; @@ -72,5 +73,5 @@ function suchStrKey() { - // Straßen nach Strassen-Schluessel + // Strassen nach Strassen-Schluessel global $con, $street, $scalestr, $str_schl, $gkz, $gemeinde, $debug; $linelimit=50; @@ -101,7 +102,7 @@ $skey=$row["lage"]; echo "\n\t
Fehler bei Koordinate zur Straße
"; + + if ($showParent) { + // eine Koordinate zur Strasse besorgen + // ax_Flurstueck >zeigtAuf> ax_LagebezeichnungOhneHausnummer + $sqlko ="SELECT "; + $sqlko.="x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, "; + $sqlko.="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 beliebige 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
"; + } + $sqlko.=""; + + echo "\n".$cnt." Hausnummern
"; } else { - echo "\nKein Haus.
"; + echo "\nKeine Straße.
"; } return; @@ -221,17 +231,18 @@ if(isset($epsg)) { if ($debug >= 2) {echo "\naktueller EPSG='".$epsg."'
";} // aus MB - If (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);} + if (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);} } else { if ($debug >= 2) {echo "\nkein EPSG gesetzt
";} $epsg=$gui_epsg; // aus Conf } - if ($debug >= 2) { if(isset($gemeinde)) {echo "Filter Gemeinde = ".$gemeinde."
"; } else {echo "\nKein Filter Gemeinde
";} } - -if(isset($street)) { // Eingabe in Form - if (is_numeric(trim($street, "*"))) { // Zahl mit Wildcard +if (isset($str_schl)) { // aus Link + if ($debug >= 2) {echo "\nLink Strassenschluesel '".$str_schl."'
";} + suchHausZurStr(true); +} elseif(isset($street)) { // Eingabe in Form + if (trim($street, "*,0..9") == "") { // Zahl mit Wildcard if ($debug >= 2) {echo "\nSuche Key='".$street."'
";} suchStrKey(); // Suche nach Schluessel @@ -240,10 +251,8 @@ suchStrName(); // Suche nach Name } -} -if(isset($str_schl)){ // Eindeutiges Ergebnis oder Link - if ($debug >= 2) {echo "\nSuche Haus zu ='".$str_schl."'
";} - suchHausZurStr(); -} else { - if ($debug >= 2) {echo "\nKeine Suche Haus
";} + if(isset($str_schl)) { // Eindeutiges Ergebnis + if ($debug >= 2) {echo "\nweitere Suche Haus zu ='".$str_schl."'
";} + suchHausZurStr(false); + } } ?>