Changeset 330 for trunk/info/info/alkis/alkisfsnw.php
- Timestamp:
- 09/10/14 12:08:18 (10 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/info/info/alkis/alkisfsnw.php
r315 r330 20 20 2014-01-30 Korrektur Nutzungsart (z.B. Friedhof mit class=funktion=0 hatte Anzeige "unbekannt") 21 21 2014-02-06 Korrektur 22 2014-09-09 PostNAS 0.8: ohne Tab. "alkis_beziehungen", mehr "endet IS NULL", Spalten varchar statt integer 23 2014-09-10 Bei Relationen den Timestamp abschneiden 22 24 23 25 ToDo: … … 107 109 108 110 // F L U R S T U E C K 109 $sql ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche, st_area(f.wkb_geometry) AS fsgeomflae, f.zeitpunktderentstehung, "; 110 $sql.="g.gemarkungsnummer, g.bezeichnung "; 111 $sql.="FROM ax_flurstueck f "; 112 $sql.="LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; 113 $sql.="WHERE f.gml_id= $1"; 111 $sql ="SELECT f.name, f.flurnummer, f.zaehler, f.nenner, f.regierungsbezirk, f.kreis, f.gemeinde, f.amtlicheflaeche, st_area(f.wkb_geometry) AS fsgeomflae, f.zeitpunktderentstehung, g.gemarkungsnummer, g.bezeichnung 112 FROM ax_flurstueck f LEFT JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer 113 WHERE f.gml_id= $1 AND f.endet IS NULL;"; 114 114 115 115 $v = array($gmlid); // mit gml_id suchen 116 116 $res = pg_prepare("", $sql); 117 117 $res = pg_execute("", $v); 118 118 119 if (!$res) { 119 120 echo "\n<p class='err'>Fehler bei Flurstuecksdaten</p>\n"; … … 138 139 $arrn = explode(",", trim($name, "{}") ); // PHP-Array 139 140 } else { 140 echo "<p class='err'>Fehler! Kein Treffer für gml_id=".$gmlid."</p>";141 echo "<p class='err'>Fehler! Kein Treffer für Flurstück mit gml_id=".$gmlid."</p>"; 141 142 if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 143 echo "</body></html>"; 144 return; 142 145 } 143 146 pg_free_result($res); … … 177 180 178 181 echo "\n\t</table>"; 179 if ($idanzeige) {linkgml($gkz, $gmlid, "Flurstück" ); }182 if ($idanzeige) {linkgml($gkz, $gmlid, "Flurstück", "ax_flurstueck"); } 180 183 echo "\n\t</td>\n</tr>\n</table>"; 181 184 // echo "\n<tr>\n\t<td>Finanzamt</td>\n\t<td>".$finanzamt." ".$finame . "</td>\n</tr>"; … … 247 250 if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";} 248 251 } 249 $row =pg_fetch_array($res);250 $bnam =htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8");252 $row=pg_fetch_array($res); 253 $bnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 251 254 echo "<tr><td> </td><td>Regierungsbezirk</td><td>"; 252 255 if ($showkey) { … … 259 262 // ** L a g e b e z e i c h n u n g ** 260 263 261 // Lagebezeichnung M itHausnummer264 // Lagebezeichnung MIT Hausnummer 262 265 // ax_flurstueck >weistAuf> AX_LagebezeichnungMitHausnummer 263 $sql ="SELECT DISTINCT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung "; 264 $sql.="FROM alkis_beziehungen v "; 265 $sql.="JOIN ax_lagebezeichnungmithausnummer l ON v.beziehung_zu=l.gml_id "; // Strassennamen JOIN 266 $sql.="JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde "; 267 $sql.="AND l.lage = s.lage "; 268 $sql.="WHERE v.beziehung_von= $1 "; // id FS"; 269 $sql.="AND v.beziehungsart='weistAuf' "; 270 $sql.="ORDER BY l.gemeinde, l.lage, l.hausnummer;"; 271 // Theoretisch JOIN notwendig ÃŒber den kompletten SchlÃŒssel bestehend aus land+regierungsbezirk+kreis+gemeinde+lage 272 // bei einem SekundÀrbestand fÃŒr eine Gemeinde oder einen Kreis reicht dies hier: 266 $sql="SELECT DISTINCT l.gml_id, l.gemeinde, l.lage, l.hausnummer, s.bezeichnung 267 FROM ax_flurstueck f JOIN ax_lagebezeichnungmithausnummer l ON substring(l.gml_id,1,16) = ANY(f.weistauf) 268 JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 269 WHERE f.gml_id= $1 ORDER BY l.gemeinde, l.lage, l.hausnummer;"; 273 270 274 271 $v = array($gmlid); 275 272 $res = pg_prepare("", $sql); 276 273 $res = pg_execute("", $v); 274 277 275 if (!$res) { 278 276 echo "<p class='err'>Fehler bei Lagebezeichnung mit Hausnummer</p>"; 279 if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";} 280 } 281 $j=0; 282 while($row = pg_fetch_array($res)) { 283 $sname = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name 284 echo "\n<tr>\n\t"; 285 if ($j == 0) { 286 echo "<td class='ll'><img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''> Adresse:</td>"; 287 } else { 288 echo "<td> </td>"; 289 } 290 echo "\n\t<td> </td>"; 291 echo "\n\t<td class='lr'>"; 292 if ($showkey) { 293 echo "<span class='key' title='StraÃenschlüssel'>(".$row["lage"].")</span> "; 294 } 295 echo $sname." ".$row["hausnummer"]; 296 if ($idanzeige) {linkgml($gkz, $row["gml_id"], "Lagebezeichnung mit Hausnummer");} 297 echo "</td>"; 298 echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 299 echo "\n\t\t\t<a title='Lagebezeichnung mit Hausnummer' href='alkislage.php?gkz=".$gkz."&ltyp=m&gmlid=".$row["gml_id"]; 300 if ($showkey) {echo "&showkey=j";} 301 echo "'>Lage "; 302 echo "<img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''></a>"; 303 echo "\n\t\t</p>\n\t</td>"; 304 echo "\n</tr>"; 305 $j++; 306 } 307 pg_free_result($res); 277 if ($debug > 1) { 278 //echo "<p class='dbg'>Fehler:".pg_result_error($res)."</p>"; 279 echo "<p class='dbg'>Fehler:".pg_last_error()."</p>"; 280 } 281 if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 282 } else { 283 $j=0; 284 while($row = pg_fetch_array($res)) { 285 $sname = htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); // Str.-Name 286 echo "\n<tr>\n\t"; 287 if ($j == 0) { 288 echo "<td class='ll'><img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''> Adresse:</td>"; 289 } else { 290 echo "<td> </td>"; 291 } 292 echo "\n\t<td> </td>"; 293 echo "\n\t<td class='lr'>"; 294 if ($showkey) { 295 echo "<span class='key' title='StraÃenschlüssel'>(".$row["lage"].")</span> "; 296 } 297 echo $sname." ".$row["hausnummer"]; 298 if ($idanzeige) {linkgml($gkz, $row["gml_id"], "Lagebezeichnung mit Hausnummer", "ax_lagebezeichnungmithausnummer");} 299 echo "</td>"; 300 echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; 301 echo "\n\t\t\t<a title='Lagebezeichnung mit Hausnummer' href='alkislage.php?gkz=".$gkz."&ltyp=m&gmlid=".$row["gml_id"]; 302 if ($showkey) {echo "&showkey=j";} 303 echo "'>Lage "; 304 echo "<img src='ico/Lage_mit_Haus.ico' width='16' height='16' alt=''></a>"; 305 echo "\n\t\t</p>\n\t</td>"; 306 echo "\n</tr>"; 307 $j++; 308 } 309 pg_free_result($res); 310 } 308 311 // Verbesserung: mehrere HsNr zur gleichen StraÃe als Liste? 309 312 310 // L a g e b e z e i c h n u n g O h n e H a u s n u m m er (Gewanne oder nur Strasse)313 // Lagebezeichnung OHNE Hausnummer (Gewanne oder nur Strasse) 311 314 // ax_flurstueck >zeigtAuf> AX_LagebezeichnungOhneHausnummer 312 $sql ="SELECT l.gml_id, l.unverschluesselt, l.gemeinde, l.lage, s.bezeichnung "; 313 $sql.="FROM alkis_beziehungen v "; 314 $sql.="JOIN ax_lagebezeichnungohnehausnummer l ON l.gml_id=v.beziehung_zu "; 315 $sql.="LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.kreis=s.kreis AND l.gemeinde=s.gemeinde "; 316 $sql.="AND l.lage = s.lage "; 317 $sql.="WHERE v.beziehung_von= $1 "; // id FS 318 $sql.="AND v.beziehungsart='zeigtAuf';"; //ORDER? 315 $sql ="SELECT l.gml_id, l.unverschluesselt, l.gemeinde, l.lage, s.bezeichnung 316 FROM ax_flurstueck f JOIN ax_lagebezeichnungohnehausnummer l ON substring(l.gml_id,1,16)=ANY(f.zeigtauf) 317 LEFT JOIN ax_lagebezeichnungkatalogeintrag s ON l.land=s.land AND l.regierungsbezirk=s.regierungsbezirk AND l.kreis=s.kreis AND l.gemeinde=s.gemeinde AND l.lage=s.lage 318 WHERE f.gml_id = $1 ;"; 319 319 320 $v = array($gmlid); 320 321 $res = pg_prepare("", $sql); … … 322 323 if (!$res) { 323 324 echo "<p class='err'>Fehler bei Lagebezeichnung ohne Hausnummer</p>"; 324 if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."</p>";} 325 //if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($res)."</p>";} 326 if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 325 327 } 326 328 $j=0; … … 352 354 } 353 355 echo $row["bezeichnung"]; 354 if ($idanzeige) {linkgml($gkz, $lgml, "Lagebezeichnung o. HsNr." );}356 if ($idanzeige) {linkgml($gkz, $lgml, "Lagebezeichnung o. HsNr.", "ax_lagebezeichnungohnehausnummer");} 355 357 echo "</td>"; 356 358 echo "\n\t<td>\n\t\t<p class='nwlink noprint'>"; … … 458 460 if ($nam != "") {echo "<br>Name: ".$nam;} 459 461 if ($bez != "") {echo "<br>Bezeichnung: ".$bez;} 460 if ($idanzeige) {linkgml($gkz, $gml, "Nutzungs-Abschnitt" );}462 if ($idanzeige) {linkgml($gkz, $gml, "Nutzungs-Abschnitt", "");} 461 463 462 464 echo "</td>"; 463 465 echo "\n\t<td>"; 464 466 switch ($grupp) { // Icon nach 4 Objektartengruppen 465 case "Siedlung": $ico = "Abschnitt.ico";break;466 case "Verkehr": $ico = "Strassen_Klassifikation.ico";break;467 case "Vegetation": $ico = "Wald.ico";break;468 case "GewÀsser": 469 default: 467 case "Siedlung": $ico = "Abschnitt.ico"; break; 468 case "Verkehr": $ico = "Strassen_Klassifikation.ico"; break; 469 case "Vegetation": $ico = "Wald.ico"; break; 470 case "GewÀsser": $ico = "Wasser.ico"; break; 471 default: $ico = "Abschnitt.ico"; break; 470 472 } 471 473 // Icon ist auch im Druck sichtbar, class='noprint' ? … … 499 501 $sql_boden ="SELECT a.wert, a.bezeichner AS art_verf, b.gml_id AS verf_gml, b.bezeichnung AS verf_bez, "; 500 502 $sql_boden.="b.name AS verf_name, d.bezeichnung AS stelle_bez, d.stelle AS stelle_key "; 501 $sql_boden.="FROM ax_bauraumoderbodenordnungsrecht b JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON a.wert =b.artderfestlegung ";502 $sql_boden.="LEFT JOIN ax_dienststelle d ON b.stelle =d.stelle ";503 $sql_boden.="FROM ax_bauraumoderbodenordnungsrecht b JOIN ax_bauraumoderbodenordnungsrecht_artderfestlegung a ON a.wert=b.artderfestlegung "; 504 $sql_boden.="LEFT JOIN ax_dienststelle d ON b.stelle=d.stelle "; 503 505 $sql_boden.="WHERE ST_Within((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry) "; 504 506 $sql_boden.="OR ST_Overlaps((SELECT wkb_geometry FROM ax_flurstueck WHERE gml_id = $1),wkb_geometry)"; … … 610 612 611 613 // B U C H U N G S S T E L L E N zum FS (istGebucht) 612 $sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer as lfd, s.zaehler, s.nenner, "; 613 $sql.="s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, b.bezeichner AS bart "; 614 $sql.="FROM alkis_beziehungen v JOIN ax_buchungsstelle s ON v.beziehung_zu=s.gml_id "; 615 $sql.="LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart = b.wert "; 616 $sql.="WHERE v.beziehung_von= $1 AND v.beziehungsart= $2 ORDER BY s.laufendenummer;"; 617 618 $v = array($gmlid,'istGebucht'); 614 $sql ="SELECT s.gml_id, s.buchungsart, s.laufendenummer as lfd, s.zaehler, s.nenner, s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, b.bezeichner AS bart 615 FROM ax_flurstueck f JOIN ax_buchungsstelle s ON substring(s.gml_id,1,16)=f.istgebucht 616 LEFT JOIN ax_buchungsstelle_buchungsart b ON s.buchungsart=b.wert 617 WHERE f.gml_id= $1 ORDER BY s.laufendenummer;"; 618 619 $v = array($gmlid); 619 620 $ress = pg_prepare("", $sql); 620 621 $ress = pg_execute("", $v); 621 622 if (!$ress) { 622 623 echo "\n<p class='err'>Keine Buchungsstelle.</p>\n"; 624 //if ($debug > 1) {echo "<p class='dbg'>Fehler:".pg_result_error($ress)."</p>";} 623 625 if ($debug > 2) {echo "<p class='dbg'>SQL=<br>".$sql."<br>$1 = gml_id = '".$gmlid."'</p>";} 624 626 } … … 629 631 630 632 // B U C H U N G S B L A T T zur Buchungsstelle (istBestandteilVon) 631 $sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, "; 632 $sql.="z.bezeichnung "; // stelle -> amtsgericht 633 $sql.="FROM alkis_beziehungen v "; // Bez. Stelle - Blatt 634 $sql.="JOIN ax_buchungsblatt b ON v.beziehung_zu=b.gml_id "; 633 $sql ="SELECT b.gml_id, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung "; 634 $sql.="FROM ax_buchungsstelle s JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=s.istbestandteilvon "; 635 635 $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk "; 636 $sql.="WHERE v.beziehung_von= $1 "; // id Buchungsstelle 637 $sql.="AND v.beziehungsart= $2 "; 638 $sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;"; 639 640 $v = array($gmls,'istBestandteilVon'); 636 $sql.="WHERE s.gml_id = $1 ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung ;"; 637 638 $v = array($gmls); 641 639 $resg = pg_prepare("", $sql); 642 640 $resg = pg_execute("", $v); … … 695 693 echo "\n<td>"; // Outer rechte Spalte: NW-Links 696 694 if ($idanzeige) { 697 linkgml($gkz, $gmls, "Buchungsstelle" );695 linkgml($gkz, $gmls, "Buchungsstelle", "ax_buchungsstelle"); 698 696 echo "<br>"; 699 linkgml($gkz, $gmlg, "Buchungsblatt" );697 linkgml($gkz, $gmlg, "Buchungsblatt", ""); // ax_buchungsblatt keine Relationen 700 698 } 701 699 echo "\n\t<p class='nwlink noprint'>weitere Auskunft:<br>"; … … 730 728 if ($blattkeyg == 1000) { 731 729 echo "\n<p class='err'>Keine Namensnummer gefunden.</p>"; 732 linkgml($gkz, $gmlg, "Buchungsblatt" );730 linkgml($gkz, $gmlg, "Buchungsblatt", ""); 733 731 } else { 734 732 echo "\n<p>ohne Eigentümer.</p>"; … … 741 739 echo "\n<p class='err'>Kein Buchungsblatt gefunden.</p>"; 742 740 echo "\n<p class='err'>Parameter: gml_id= ".$gmls.", Beziehung='istBestandteilVon'</p>"; 743 linkgml($gkz, $gmls, "Buchungstelle" );741 linkgml($gkz, $gmls, "Buchungstelle", "ax_buchungsstelle"); 744 742 } 745 743 746 744 // Buchungstelle >an> Buchungstelle >istBestandteilVon> BLATT -> Bezirk 747 $sql ="SELECT s.gml_id AS s_gml, s.buchungsart, s.laufendenummer as lfd, "; 748 $sql.="s.zaehler, s.nenner, s.nummerimaufteilungsplan as nrpl, s.beschreibungdessondereigentums as sond, "; 749 $sql.="b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, "; 750 $sql.="z.bezeichnung, a.bezeichner AS bart "; // stelle -> amtsgericht 751 $sql.="FROM alkis_beziehungen an "; // Bez. Stelle - Stelle 752 $sql.="JOIN ax_buchungsstelle s ON an.beziehung_von = s.gml_id "; 753 $sql.="JOIN alkis_beziehungen v ON s.gml_id = v.beziehung_von "; // Bez. Stelle - Blatt 754 $sql.="JOIN ax_buchungsblatt b ON v.beziehung_zu = b.gml_id "; 755 $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land = b.land AND z.bezirk = b.bezirk "; 756 $sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON s.buchungsart = a.wert "; 757 $sql.="WHERE an.beziehung_zu = $1 "; // id herrschende Buchungsstelle 758 $sql.="AND an.beziehungsart = 'an' AND v.beziehungsart = 'istBestandteilVon' "; 745 $sql ="SELECT sd.gml_id AS s_gml, sd.buchungsart, sd.laufendenummer as lfd, sd.zaehler, sd.nenner, sd.nummerimaufteilungsplan as nrpl, sd.beschreibungdessondereigentums as sond, "; 746 $sql.="b.gml_id AS g_gml, b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung as blatt, b.blattart, z.bezeichnung, a.bezeichner AS bart "; 747 $sql.="FROM ax_buchungsstelle sh JOIN ax_buchungsstelle sd ON substring(sd.gml_id,1,16)=ANY(sh.an) "; // Stelle >an> Stelle 748 $sql.="JOIN ax_buchungsblatt b ON substring(b.gml_id,1,16)=sd.istbestandteilvon ";// Stelle >istbestandteilvon> Blatt 749 $sql.="LEFT JOIN ax_buchungsblattbezirk z ON z.land=b.land AND z.bezirk=b.bezirk "; 750 $sql.="LEFT JOIN ax_buchungsstelle_buchungsart a ON sd.buchungsart=a.wert "; 751 $sql.="WHERE sh.gml_id= $1 "; // id herrschende Buchungsstelle 759 752 $sql.="ORDER BY b.bezirk, b.buchungsblattnummermitbuchstabenerweiterung;"; 753 760 754 $v = array($gmls); 761 755 $resan = pg_prepare("", $sql); … … 806 800 echo "\n<td>"; // outer rechte Spalte 807 801 if ($idanzeige) { 808 linkgml($gkz, $rowan["s_gml"], "Buchungsstelle" );802 linkgml($gkz, $rowan["s_gml"], "Buchungsstelle", "ax_buchungsstelle"); 809 803 echo "<br>"; 810 linkgml($gkz, $rowan["g_gml"], "Buchungsblatt" );804 linkgml($gkz, $rowan["g_gml"], "Buchungsblatt", ""); 811 805 } 812 806 echo "\n<br>"; … … 845 839 if ($bs == 0) { 846 840 echo "\n<p class='err'>Keine Buchungstelle gefunden.</p>"; 847 linkgml($gkz, $gmlid, "Flurstück" );841 linkgml($gkz, $gmlid, "Flurstück", "ax_flurstueck"); 848 842 } 849 843 pg_close($con);
Note: See TracChangeset
for help on using the changeset viewer.