Changeset 187


Ignore:
Timestamp:
12/03/12 12:19:23 (11 years ago)
Author:
astrid.emde
Message:

kleine Anpassung subselect replace

File:
1 edited

Legend:

Unmodified
Added
Removed
  • trunk/data/mapbender/http/nav/alkisnav_adr.php

    r140 r187  
    55        24.10.2011 Nach Pos-Klick Highlight erneuern statt hideHighlight 
    66        09.12.2011 Sonderfall PostNAS 0.5 raus, 
     7    3.12.2012 Ausgabe von Hausnr ohne Gebaeude 
    78 
    89        ToDo: 
     
    167168function suchHausZurStr($showParent){ 
    168169        // Haeuser zu einer Strasse 
    169         global $con, $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $epsg, $gfilter, $debug; 
     170        global $con, $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $epsg, $gfilter, $hausnummernohnegebaeude, $debug; 
    170171        // Strasse zum Strassenschluessel 
    171172        $sql ="SELECT g.bezeichnung AS gemname, k.bezeichnung, k.land, k.regierungsbezirk, k.kreis, k.gemeinde, k.lage "; 
     
    267268                        if($count == 0){echo "\n<tr>";} 
    268269                        $gml=$rowh["gml_id"];                    
    269                         $nr=$rowh["hsnr"];                       
     270                        $hsnr=$rowh["hsnr"];                     
    270271                        $x=$rowh["x"]; 
    271272                        $y=$rowh["y"]; 
     
    276277                                echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
    277278                                echo "onmouseout='parent.parent.hideHighlight()"; 
    278                                 echo "'>".$nr."</a>"; 
     279                                echo "'>".$hsnr."</a>"; 
    279280                        echo "</td>"; 
    280281                        $cnt++; 
     
    288289                echo "\n</table>"; 
    289290                echo "\n<p class='hilfe'>".$cnt." Hausnummern</p>"; 
     291 
     292                if($hausnummernohnegebaeude == 1){ 
     293                        #echo "Hausnummern ohne Geb&auml;ude:"; 
     294                        // Haeuser zum Strassenschluessel 
     295                        $sql ="SELECT gml_id, replace (schriftinhalt, ' ','') AS hsnr, "; 
     296                        if($epsg == "25832") { // Transform nicht notwendig 
     297                                $sql.="x(wkb_geometry) AS x, "; 
     298                                $sql.="y(wkb_geometry) AS y ";           
     299                        } 
     300                        else {   
     301                                $sql.="x(st_transform(wkb_geometry), ".$epsg.")) AS x, "; 
     302                                $sql.="y(st_transform(wkb_geometry), ".$epsg.")) AS y ";                 
     303                        }                
     304                        $sql.="from ap_pto where "; 
     305                        $sql.="gml_id IN (Select beziehung_von from alkis_beziehungen "; 
     306                        $sql.="where beziehung_zu IN ("; 
     307                        $sql.="SELECT "; 
     308                        $sql.="gml_id "; 
     309                        $sql.="FROM ax_lagebezeichnungmithausnummer h "; 
     310                        $sql.="WHERE h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 "; 
     311                        $sql.="AND h.gemeinde= $4 AND h.lage= $5 "; 
     312                        $sql.="AND replace (h.hausnummer, ' ','') NOT IN ("; 
     313                        $sql.="SELECT replace (h.hausnummer, ' ','') AS hsnr "; 
     314                        $sql.="FROM ax_lagebezeichnungmithausnummer h "; 
     315                        $sql.="JOIN alkis_beziehungen v ON h.gml_id=v.beziehung_zu "; 
     316                        $sql.="JOIN ax_gebaeude g ON v.beziehung_von=g.gml_id "; 
     317                        $sql.="WHERE h.land= $6 AND "; 
     318                        $sql.="h.regierungsbezirk= $7 AND h.kreis= $8 AND h.gemeinde= $9 AND "; 
     319                        $sql.=" h.lage= $10 "; 
     320                        $sql.="AND v.beziehungsart='zeigtAuf' "; 
     321                        $sql.=") ORDER BY lpad(split_part(h.hausnummer,' ',1), 4, '0'), split_part(h.hausnummer,' ',2) "; 
     322                        $sql.=")) order by lpad(split_part(schriftinhalt,' ',1), 4, '0'), split_part(schriftinhalt,' ',2);"; 
     323                        $vw=array($land,$regb,$kreis,$gemnd,$nr,$land,$regb,$kreis,$gemnd,$nr); 
     324                        #echo "SQL: ".$land." ".$regb." ".$kreis." ".$gemnd." ".$nr; 
     325                        $resho=pg_prepare("", $sql); 
     326                        $resho=pg_execute("", $vw); 
     327                        $cnt=0; 
     328                        $count=0; 
     329                        #echo $sql; 
     330                        echo "\n<table>"; 
     331                        // mehrere Hausnummern je Zeile ausgeben 
     332                        while($rowh = pg_fetch_array($resho)) { 
     333                                if($count == 0){echo "\n<tr>";} 
     334                                $gml=$rowh["gml_id"];                    
     335                                $nr=$rowh["hsnr"];                       
     336                                $x=$rowh["x"]; 
     337                                $y=$rowh["y"]; 
     338                                echo "\n\t<td class='hsnr'>"; 
     339                                        echo "<a href='"; 
     340                                                echo "javascript:parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalehs."); "; 
     341                                                echo "parent.parent.showHighlight(".$x.",".$y.");' "; 
     342                                        echo "onmouseover='parent.parent.showHighlight(".$x.",".$y.")' "; 
     343                                        echo "onmouseout='parent.parent.hideHighlight()"; 
     344                                        echo "'>".$nr."</a>"; 
     345                                echo "</td>"; 
     346                                $cnt++; 
     347                                $count++; 
     348                                if($count == 6) { 
     349                                        echo "\n</tr>"; 
     350                                        $count = 0; 
     351                                } 
     352                        } 
     353                        if($count > 0) {echo "\n</tr>";} 
     354                        echo "\n</table>"; 
     355                        if($cnt > 0) {echo "\n<p class='hilfe'>".$cnt." Hausnummern ohne Geb&auml;ude</p>";} 
     356                } 
    290357        } else { 
    291358                echo "\n<p class='err'>Keine Stra&szlig;e.</p>"; 
Note: See TracChangeset for help on using the changeset viewer.