Changeset 83 for trunk/data/mapbender


Ignore:
Timestamp:
03/25/11 09:44:02 (11 years ago)
Author:
frank.jaeger
Message:
 
File:
1 edited

Legend:

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

    r68 r83  
    11<?php 
    2 // Version vom 13.01.2011 
     2/* Version vom 24.03.2011  
     3        bei HsNr auch Gemeinde in Where 
     4        Anzeige Gemeinde wenn nicht in Filter */ 
    35import_request_variables("PG"); 
    46include("../../conf/alkisnav_conf.php"); 
     
    2022<?php 
    2123 
    22  
    2324function suchStrName() { 
    24         // Straßen nach Name(-nsanfang) 
     25        // Strassen nach Name(-nsanfang) 
    2526        global $con, $street, $scalestr, $str_schl, $gkz, $gemeinde, $debug; 
    2627        $linelimit=120;  // -> in die Conf? 
     
    4041                $sql.="AND k.gemeinde=".$gemeinde." "; 
    4142        } 
    42         $sql.="ORDER BY k.bezeichnung, k.lage LIMIT $2 ;"; 
     43        $sql.="ORDER BY k.bezeichnung, g.bezeichnung, k.lage LIMIT $2 ;"; 
    4344        $v=array($match,$linelimit); 
    4445        $res=pg_prepare("", $sql); 
     
    4849        while($row = pg_fetch_array($res)) { 
    4950                $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");           
    50                 $gkey=$row["schluesselgesamt"]; 
     51                $gkey=$row["schluesselgesamt"]; // Land-Kreis-Gem-Strasse 
    5152                $gemname=htmlentities($row["gemname"], ENT_QUOTES, "UTF-8"); 
    5253                $skey=$row["lage"]; 
     
    5758                                echo $sname; // nicht brauchbar fuer ax_lagebezeichnungmithausnummer.lage (Integer) 
    5859                        } 
    59                         if (! isset($gemeinde)) {echo " in ".$gemname;} 
     60                        if ($gemeinde == "") {echo " in ".$gemname;} 
    6061                echo "</div>"; 
    6162                $cnt++; 
     
    7273 
    7374function suchStrKey() { 
    74         // Straßen nach Strassen-Schluessel 
     75        // Strassen nach Strassen-Schluessel 
    7576        global $con, $street, $scalestr, $str_schl, $gkz, $gemeinde, $debug; 
    7677        $linelimit=50; 
     
    101102                $skey=$row["lage"]; 
    102103                echo "\n\t<div class='stl' title='Stra&szlig;enschl&uuml;ssel ".$skey."'>"; 
    103                         echo $skey." <a class='st' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;str_schl=".$gkey."'>".$sname; 
     104                        echo $skey." <a class='st' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;str_schl=".$gkey."' title='".$gemname."'>".$sname; 
    104105                        echo "</a>"; 
    105                         if (! isset($gemeinde)) {echo " in ".$gemname;} 
     106                        if ($gemeinde == "") {echo " in ".$gemname;} 
    106107                echo "</div>"; 
    107108                $cnt++; 
     
    119120} 
    120121 
    121 function suchHausZurStr(){ 
    122         // Haeuser zu einer Straße 
     122function suchHausZurStr($showParent){ 
     123        // Haeuser zu einer Strasse 
    123124        global $con, $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $debug; 
    124125        // Strasse zum Strassenschluessel 
    125         $sql ="SELECT k.bezeichnung, k.land, k.regierungsbezirk, k.kreis, k.gemeinde, k.lage "; 
    126         $sql.="FROM ax_lagebezeichnungkatalogeintrag AS k WHERE schluesselgesamt = $1 LIMIT 1";  
     126        $sql ="SELECT g.bezeichnung AS gemname, k.bezeichnung, k.land, k.regierungsbezirk, k.kreis, k.gemeinde, k.lage "; 
     127        $sql.="FROM ax_lagebezeichnungkatalogeintrag as k "; 
     128        $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 "; 
     129        $sql.="WHERE k.schluesselgesamt = $1 LIMIT 1";  
     130  
    127131        $v=array($str_schl); 
    128132        $res=pg_prepare("", $sql); 
     
    134138                $kreis=$row["kreis"]; 
    135139                $gemnd=$row["gemeinde"]; 
     140                $gemname=htmlentities($row["gemname"], ENT_QUOTES, "UTF-8"); 
    136141                $nr=ltrim($row["lage"], "0"); 
    137                 // eine Koordinate zur Strasse besorgen 
    138                 // ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer 
    139                 $sqlko ="SELECT ";               
    140                 $sqlko.="x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 
    141                 $sqlko.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y "; 
    142                 $sqlko.="FROM ax_lagebezeichnungohnehausnummer o "; 
    143                 $sqlko.="JOIN alkis_beziehungen v ON o.gml_id=v.beziehung_zu ";  
    144                 $sqlko.="JOIN ax_flurstueck f ON v.beziehung_von=f.gml_id "; 
    145                 $sqlko.="WHERE o.land= $1 AND o.regierungsbezirk= $2 AND o.kreis= $3 AND o.gemeinde= $4 AND o.lage= $5 ";        
    146                 $sqlko.="AND v.beziehungsart='zeigtAuf' LIMIT 1;";  // die erstbeste beliebige Koordinate 
    147                 $v=array($land,$regb,$kreis,$gemnd,$nr); 
    148                 $resko=pg_prepare("", $sqlko); 
    149                 $resko=pg_execute("", $v); 
    150                 if ($resko) { 
    151                         $rowko=pg_fetch_array($resko);  
    152                         $x=$rowko["x"]; 
    153                         $y=$rowko["y"]; 
    154                 } else {                 
    155                         echo "\n<p class='err'>Fehler bei Koordinate zur Stra&szlig;e</p>"; 
     142 
     143                if ($showParent) { 
     144                        // eine Koordinate zur Strasse besorgen 
     145                        // ax_Flurstueck  >zeigtAuf>  ax_LagebezeichnungOhneHausnummer 
     146                        $sqlko ="SELECT ";               
     147                        $sqlko.="x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 
     148                        $sqlko.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y "; 
     149                        $sqlko.="FROM ax_lagebezeichnungohnehausnummer o "; 
     150                        $sqlko.="JOIN alkis_beziehungen v ON o.gml_id=v.beziehung_zu ";  
     151                        $sqlko.="JOIN ax_flurstueck f ON v.beziehung_von=f.gml_id "; 
     152                        $sqlko.="WHERE o.land= $1 AND o.regierungsbezirk= $2 AND o.kreis= $3 AND o.gemeinde= $4 AND o.lage= $5 ";        
     153                        $sqlko.="AND v.beziehungsart='zeigtAuf' LIMIT 1;";  // die erstbeste beliebige Koordinate 
     154                        $v=array($land,$regb,$kreis,$gemnd,$nr); 
     155                        $resko=pg_prepare("", $sqlko); 
     156                        $resko=pg_execute("", $v); 
     157                        if ($resko) { 
     158                                $rowko=pg_fetch_array($resko);  
     159                                $x=$rowko["x"]; 
     160                                $y=$rowko["y"]; 
     161                        } else {                 
     162                                echo "\n<p class='err'>Fehler bei Koordinate zur Stra&szlig;e</p>"; 
     163                        } 
     164                        $sqlko.=""; 
     165 
     166                        echo "\n<div class='stu'>";              
     167                        if ($x > 0) { // Koord. bekommen? 
     168                                echo "\n\t<a title='Positionieren 1:".$scalestr."' href='"; // mit Link 
     169                                        echo "javascript:parent.parent.hideHighlight();"; 
     170                                        echo "\n\t\tparent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalestr.");"; 
     171                                        echo "\n\t\tdocument.location.href=\"".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;str_schl=".$str_schl."\"' "; 
     172                                        echo "\n\t\tonmouseover='parent.parent.showHighlight(" .$x. "," .$y. ")' "; 
     173                                        echo "\n\t\tonmouseout='parent.parent.hideHighlight()'"; 
     174                                echo ">\n\t\t".$sname." (".$nr.")\n\t</a>"; 
     175                        } else { // keine Koord. dazu gefunden 
     176                                echo $sname." (".$nr.")"; // nur Anzeige, ohne Link 
     177                        } 
     178                        if ($gemeinde == "") {echo " in ".$gemname;} 
     179                        echo "\n</div>"; 
    156180                } 
    157                 $sqlko.=""; 
    158                 echo "\n<div class='stu'>";              
    159                 if ($x > 0) { // Koord. bekommen? 
    160                         echo "\n\t<a title='Positionieren 1:".$scalestr."' href='"; // mit Link 
    161                                 echo "javascript:parent.parent.hideHighlight();"; 
    162                                 echo "\n\t\tparent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalestr.");"; 
    163                                 echo "\n\t\tdocument.location.href=\"".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&amp;gemeinde=".$gemeinde."&amp;str_schl=".$str_schl."\"' "; 
    164                                 echo "\n\t\tonmouseover='parent.parent.showHighlight(" .$x. "," .$y. ")' "; 
    165                                 echo "\n\t\tonmouseout='parent.parent.hideHighlight()'"; 
    166                         echo ">\n\t\t".$sname." (".$nr.")\n\t</a>"; 
    167                 } else { // keine Koord. dazu gefunden 
    168                         echo $sname." (".$nr.")"; // nur Anzeige, ohne Link 
    169                 } 
    170                 echo "\n</div>\n<hr>"; 
    171                  
     181                echo "\n<hr>"; 
    172182                // Haeuser zum Strassenschluessel 
    173183                $sql ="SELECT replace (h.hausnummer, ' ','') AS hsnr, "; 
     
    177187                $sql.="JOIN alkis_beziehungen v ON h.gml_id=v.beziehung_zu "; 
    178188                $sql.="JOIN ax_gebaeude g ON v.beziehung_von=g.gml_id "; 
    179                 $sql.="WHERE h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.lage= $4 "; // integer 
     189                $sql.="WHERE h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 "; // integer 
    180190                $sql.="AND v.beziehungsart='zeigtAuf' "; 
    181191                $sql.="ORDER BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);"; 
    182                 $v=array($land,$regb,$kreis,$nr); 
     192                $v=array($land,$regb,$kreis,$gemnd,$nr); 
    183193                $resh=pg_prepare("", $sql); 
    184194                $resh=pg_execute("", $v); 
     
    212222                echo "\n<p class='hilfe'>".$cnt." Hausnummern</p>"; 
    213223        } else { 
    214                 echo "\n<p class='err'>Kein Haus.</p>"; 
     224                echo "\n<p class='err'>Keine Stra&szlig;e.</p>"; 
    215225        } 
    216226        return; 
     
    221231if(isset($epsg)) { 
    222232        if ($debug >= 2) {echo "\n<p>aktueller EPSG='".$epsg."'</p>";} // aus MB 
    223         If (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);} 
     233        if (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);} 
    224234} else { 
    225235        if ($debug >= 2) {echo "\n<p class='err'>kein EPSG gesetzt</p>";}        
    226236        $epsg=$gui_epsg; // aus Conf 
    227237} 
    228  
    229238if ($debug >= 2) { 
    230239        if(isset($gemeinde)) {echo "<p>Filter Gemeinde = ".$gemeinde."</p>"; 
    231240        } else {echo "\n<p>Kein Filter Gemeinde</p>";} 
    232241} 
    233  
    234 if(isset($street)) { // Eingabe in Form 
    235         if (is_numeric(trim($street, "*"))) { // Zahl mit Wildcard 
     242if (isset($str_schl)) { // aus Link 
     243        if ($debug >= 2) {echo "\n<p>Link Strassenschluesel '".$str_schl."'</p>";} 
     244        suchHausZurStr(true); 
     245} elseif(isset($street)) { // Eingabe in Form 
     246        if (trim($street, "*,0..9") == "") { // Zahl mit Wildcard 
    236247                if ($debug >= 2) {echo "\n<p>Suche Key='".$street."'</p>";} 
    237248                suchStrKey(); // Suche nach Schluessel 
     
    240251                suchStrName(); // Suche nach Name 
    241252        } 
    242 } 
    243 if(isset($str_schl)){ // Eindeutiges Ergebnis oder Link 
    244         if ($debug >= 2) {echo "\n<p>Suche Haus zu ='".$str_schl."'</p>";} 
    245         suchHausZurStr(); 
    246 } else { 
    247         if ($debug >= 2) {echo "\n<p>Keine Suche Haus</p>";} 
     253        if(isset($str_schl)) { // Eindeutiges Ergebnis 
     254                if ($debug >= 2) {echo "\n<p>weitere Suche Haus zu ='".$str_schl."'</p>";} 
     255                suchHausZurStr(false); 
     256        } 
    248257} 
    249258?> 
Note: See TracChangeset for help on using the changeset viewer.