Changeset 86 for trunk/data/mapbender/http/nav/alkisnav_fls.php
- Timestamp:
- 04/12/11 09:58:26 (13 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/data/mapbender/http/nav/alkisnav_fls.php
r85 r86 3 3 13.01.2011 4 4 25.03.2011 Filter als Gemeinde-Liste 5 12.04.2011 epsg in Link, transform nur wenn notwendig 5 6 */ 6 7 import_request_variables("PG"); … … 37 38 $zfsnr=trim($arr[2]); 38 39 if ($zgemkg == "") { 39 return 1; // alle Gmkglisten40 return 0; // Gemeinden oder Gemarkungen listen 40 41 } elseif ( ! is_ne_zahl($zgemkg)) { 41 42 return 1; // Such Name … … 44 45 } elseif ( ! is_ne_zahl($zflur)) { 45 46 echo "<p class='err>Die Flurnummer '".$zflur."' ist nicht numerisch</p>"; 46 return 0;47 return 9; 47 48 } elseif ($zfsnr == "") { 48 49 return 3; // Flur … … 53 54 if ( ! is_ne_zahl($zzaehler)) { 54 55 echo "<p class='err>FlurstÃŒcksnummer '".$zzaehler."' ist nicht numerisch</p>"; 55 return 0;56 return 9; 56 57 } elseif ($znenner == "") { 57 58 return 4; … … 60 61 } else { 61 62 echo "<p class='err>FlurstÃŒcks-Nenner '".$znenner."' ist nicht numerisch</p>"; 62 return 0;63 return 9; 63 64 } 64 65 } 66 } 67 68 function ListGemeinden() { 69 // bei Leereingabe die Gemeinden anlisten 70 global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter; 71 $linelimit=50; 72 $sql ="SELECT DISTINCT g.gemeinde AS key, g.bezeichnung FROM ax_gemeinde g "; 73 $sql.="JOIN gemeinde_gemarkung v ON g.regierungsbezirk=v.regierungsbezirk AND g.kreis=v.kreis AND g.gemeinde=v.gemeinde "; 74 // "ax_gemeinde" enthÀlt mehrfache Gemeinde-Schluessel (Filtern regierungsbezirk, kreis) 75 // "gemeinde_gemarkung" enthaelt nur gefÃŒllte Gemarkungen aber Gemeinde mehrfach 76 switch ($gfilter) { 77 case 1: // Einzelwert 78 $sql.="WHERE g.gemeinde=".$gemeinde." "; 79 break; 80 case 2: // Liste 81 $sql.="WHERE g.gemeinde in (".$gemeinde.") "; 82 break; 83 default: // kein Filter 84 break; 85 } 86 $sql.=" ORDER BY g.bezeichnung LIMIT $1 ;"; 87 $res=pg_prepare("", $sql); 88 $res=pg_execute("", array($linelimit)); 89 if (!$res) { 90 echo "\n<p class='err'>Fehler bei Gemeinde</p>"; 91 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 92 return 0; 93 } 94 $cnt = 0; 95 while($row = pg_fetch_array($res)) { 96 $stadt=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 97 $bez=urlencode($row["bezeichnung"]); // Uebergeben an ListGmkgInGemeinde 98 $gnr=$row["key"]; 99 echo "\n<div class='gm' title='Gemeinde'>"; 100 echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.ico' width='16' height='16' alt='Stadt'>"; 101 echo " Gem. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gm=".$gnr."&bez=".$bez."'>"; 102 echo " ".$stadt."</a> (".$gnr.")"; 103 echo "\n</div>"; 104 $cnt++; 105 } 106 if($cnt == 0){ 107 echo "\n<p class='err'>Keine Gemeinde.</p>"; 108 } elseif($cnt >= $linelimit) { 109 echo "\n<p title='Bitte eindeutiger qualifizieren'>... und weitere</p>"; 110 } elseif($cnt == 1) { // Eindeutig! 111 return $gnr; 112 } 113 return 0; 114 } 115 116 function ListGmkgInGemeinde($gkey) { 117 // Die (gefuellten) Gemarkungen zu einem Gemeinde-Key (aus Link) listen 118 global $con, $gkz, $gemeinde, $epsg, $debug, $gfilter, $bez; 119 $linelimit=70; 120 $sql ="SELECT g.gemarkungsnummer, g.bezeichnung "; 121 $sql.="FROM ax_gemarkung g JOIN gemeinde_gemarkung v ON g.gemarkungsnummer=v.gemarkung "; 122 $sql.="WHERE v.gemeinde= $1 ORDER BY g.bezeichnung LIMIT $2 ;"; 123 $res=pg_prepare("", $sql); 124 $res=pg_execute("", array($gkey, $linelimit)); 125 if (!$res) { 126 echo "\n<p class='err'>Fehler bei Gemarkungen</p>"; 127 if ($debug >= 3) {echo "\n<p class='err'>".$sql."</p>";} 128 return 0; 129 } 130 // Hierarchie Dokumentieren, Gemeinde-Name? 131 echo "\n<div class='gm' title='Gemeinde'>"; 132 echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.ico' width='16' height='16' alt='Stadt'>"; 133 echo " Gem. ".$bez." (".$gkey.")"; // .urldecode($bez). ?? 134 echo "\n</div>"; 135 $cnt = 0; 136 while($row = pg_fetch_array($res)) { 137 $gnam=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 138 $gnr=$row["gemarkungsnummer"]; 139 echo "\n<div class='gk' title='Gemarkung'>"; 140 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 141 echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$gnr."'>"; 142 echo " ".$gnam."</a> (".$gnr.")"; 143 echo "\n</div>"; 144 $cnt++; 145 } 146 if($cnt == 0){ 147 echo "\n<p class='err'>Keine Gemarkung.</p>"; 148 } elseif($cnt >= $linelimit) { 149 echo "\n<p title='Bitte eindeutiger qualifizieren'>... und weitere</p>"; 150 } elseif($cnt == 1) { // Eindeutig! 151 return $gnr; 152 } 153 return 0; 65 154 } 66 155 67 156 function SuchGmkgName() { 68 157 // Gemarkung suchen nach Name(-nsanfang) 69 global $con, $gkz, $gemeinde, $ debug, $fskennz, $gfilter;158 global $con, $gkz, $gemeinde, $epsg, $debug, $fskennz, $gfilter; 70 159 $linelimit=120; 71 160 if(preg_match("/\*/",$fskennz)){ … … 77 166 $sql.="FROM ax_gemarkung g JOIN gemeinde_gemarkung v ON g.gemarkungsnummer=v.gemarkung "; 78 167 $sql.="WHERE bezeichnung ILIKE $1 "; 79 80 // if($gemeinde > 0) {81 // $sql.=" AND v.gemeinde=".$gemeinde;82 // } // wie prepared?83 84 168 switch ($gfilter) { 85 169 case 1: // Einzelwert … … 92 176 break; 93 177 } 94 95 178 $sql.=" ORDER BY g.bezeichnung LIMIT $2 ;"; 96 179 $v=array($match, $linelimit); … … 108 191 $stadt=$row["gemeindename"]; 109 192 echo "\n<div class='gk' title='Gemarkung'>"; 110 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gem kg'>";111 echo " <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&fskennz=".$gnr."'>";193 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 194 echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$gnr."'>"; 112 195 echo " ".$gnam."</a> (".$gnr.")"; 113 114 // if ($gemeinde == 0) {echo " ".$stadt;} // Kreisweit115 196 switch ($gfilter) { 116 197 case 0: // Kein Filter … … 123 204 break; 124 205 } 125 126 206 echo "\n</div>"; 127 207 $cnt++; … … 139 219 function EineGemarkung($AuchGemkZeile) { 140 220 // Kennzeichen bestehend nur aus Gemarkung-SchlÃŒssel wurde eingegeben 141 global $con, $gkz, $gemeinde, $ debug, $zgemkg;221 global $con, $gkz, $gemeinde, $epsg, $debug, $zgemkg; 142 222 $linelimit=120; // max. Fluren je Gemarkung 143 223 if ($AuchGemkZeile) { … … 154 234 if ($zgmk == 0) { 155 235 echo "\n<div class='gk' title='Gemarkung'>"; 156 echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gem kg'>";236 echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 157 237 echo " Gemarkung ".$zgemkg." ist unbekannt.</p>"; 158 238 echo "\n</div>"; 159 239 return; 160 240 } 161 // > 1 auch möglich ???241 // > 1 auch möglich? 162 242 echo "\n<div class='gk' title='Gemarkung'>"; 163 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gem kg'> ";164 echo " <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&fskennz=".$zgemkg."'>";243 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'> "; 244 echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$zgemkg."'>"; 165 245 echo $gmkg."</a> (".$zgemkg.")"; // in Gemeinde? 166 246 echo "\n</div>"; … … 177 257 echo "\n<div class='fl' title='Flur'>"; 178 258 echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'> "; 179 echo "Flur<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."& fskennz=".$zgemkg."-".$flur."'> ".$flur." </a>";259 echo "Flur<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$zgemkg."-".$flur."'> ".$flur." </a>"; 180 260 echo "\n</div>"; 181 261 $zfl++; … … 191 271 function EineFlur() { 192 272 // Kennzeichen aus Gemarkung und FlurNr wurde eingegeben 193 global $con, $gkz, $gemeinde, $ debug, $scalefs, $epsg, $auskpath, $zgemkg, $zflur;273 global $con, $gkz, $gemeinde, $epsg, $debug, $scalefs, $auskpath, $zgemkg, $zflur; 194 274 $linelimit=600; // Wie groà kann eine Flur sein? 195 275 $sql ="SELECT bezeichnung FROM ax_gemarkung g WHERE g.gemarkungsnummer= $1 ;"; … … 205 285 if ($zgmk == 0) { 206 286 echo "\n<div class='gk' title='Gemarkung'>"; 207 echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gem kg'>";287 echo "\n\t\t<p class='err'><img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 208 288 echo " Gemarkung ".$zgemkg." ist unbekannt.</p>"; 209 289 echo "\n</div>"; … … 211 291 } 212 292 echo "\n<div class='gk' title='Gemarkung'>"; 213 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gem kg'>";214 echo " Gemarkung <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&fskennz=".$zgemkg."'> ".$gmkg." (".$zgemkg.")</a>";293 echo "\n\t\t<img class='nwlink' src='ico/Gemarkung.ico' width='16' height='16' alt='Gemarkung'>"; 294 echo " OT <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$zgemkg."'> ".$gmkg." (".$zgemkg.")</a>"; 215 295 echo "\n</div>"; 216 296 echo "\n<div class='fl' title='Flur'>"; 217 297 echo "\n\t\t<img class='nwlink' src='ico/Flur.ico' width='16' height='16' alt='Flur'> "; 218 echo "Flur <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."& fskennz=".$zgemkg."-".$zflur."'> ".$zflur."</a>";298 echo "Flur <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$zgemkg."-".$zflur."'> ".$zflur."</a>"; 219 299 echo "\n</div>"; 220 300 221 301 $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 222 $sql.="x(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 223 $sql.="y(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS y "; 302 // $sql.="x(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 303 // $sql.="y(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS y "; 304 if($epsg == "25832") { // Transform nicht notwendig 305 $sql.="x(st_Centroid(f.wkb_geometry)) AS x, "; 306 $sql.="y(st_Centroid(f.wkb_geometry)) AS y "; 307 } 308 else { 309 $sql.="x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 310 $sql.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y "; 311 } 224 312 $sql.="FROM ax_flurstueck f WHERE f.gemarkungsnummer= $1 AND f.flurnummer= $2 "; 225 313 $sql.="ORDER BY f.zaehler, f.nenner LIMIT $3 ;"; // WHERE f.land= ? … … 262 350 263 351 $sql ="SELECT f.gml_id, f.flurnummer, f.zaehler, f.nenner, f.gemeinde, "; 264 $sql.="x(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 265 $sql.="y(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS y, "; 352 // $sql.="x(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 353 // $sql.="y(st_transform (st_centroid(f.wkb_geometry), ".$epsg.")) AS y, "; 354 if($epsg == "25832") { // Transform nicht notwendig 355 $sql.="x(st_Centroid(f.wkb_geometry)) AS x, "; 356 $sql.="y(st_Centroid(f.wkb_geometry)) AS y, "; 357 } 358 else { 359 $sql.="x(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS x, "; 360 $sql.="y(st_transform(st_Centroid(f.wkb_geometry), ".$epsg.")) AS y "; 361 } 362 266 363 $sql.="g.gemarkungsnummer, g.bezeichnung "; 267 364 $sql.="FROM ax_flurstueck f JOIN ax_gemarkung g ON f.land=g.land AND f.gemarkungsnummer=g.gemarkungsnummer "; … … 304 401 if(isset($epsg)) { 305 402 if ($debug >= 2) {echo "<p>aktueller EPSG='".$epsg."'</p>"; } // aus MB 306 if (substr($epsg, 0, 5) == "EPSG:") {$epsg=substr($epsg, 5);}403 $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]); 307 404 } else { 308 if ($debug >= 2) {echo "<p class='err'>kein EPSG gesetzt</p>";}405 if ($debug >= 1) {echo "<p class='err'>kein EPSG gesetzt</p>";} 309 406 $epsg=$gui_epsg; // aus Conf 310 407 } … … 320 417 } 321 418 322 // Eingabe interpretieren 323 switch (ZerlegungFsKennz($fskennz)) { 324 case 0: 325 echo "<p class='err'>Bitte ein Flurstückskennzeichen eingegeben, Format 'gggg-fff-zzzz/nnn</p>"; 326 break; 327 case 1: 328 if ($debug >= 2) {echo "<p>Gemarkungsname ".$zgemkg."</p>";} 329 $gnr=SuchGmkgName(); 419 if(isset($gm)) { // Self-Link aus Gemeinde-Liste 420 $gnr=ListGmkgInGemeinde($gm); // Gemarkungen zu dieser Gemeinde listen 330 421 if ($gnr > 0) { 331 422 $zgemkg=$gnr; 332 423 EineGemarkung(false); 333 424 }; 334 break; 335 case 2: 336 if ($debug >= 2) {echo "<p>Gemarkungsnummer ".$zgemkg."</p>";} 337 EineGemarkung(true); 338 break; 339 case 3: 340 if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur."</p>";} 341 EineFlur(); 342 break; 343 case 4: 344 if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."</p>";} 345 EinFlurstueck(); 346 break; 347 case 5: 348 if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."/".$znenner."</p>";} 349 EinFlurstueck(); 350 break; 425 } else { 426 // Die Formular-Eingabe interpretieren (kann auch ein Link sein) 427 switch (ZerlegungFsKennz($fskennz)) { 428 case 0: // leere Eingabe 429 if ($gfilter == 1) { // Die GUI ist bereits auf eine Gemeinde gefiltert 430 SuchGmkgName(); // Gemarkungen listen 431 } else { 432 ListGemeinden(); // alle Gemeinden Listen 433 } 434 break; 435 case 1: 436 if ($debug >= 2) {echo "<p>Gemarkungsname ".$zgemkg."</p>";} 437 $gnr=SuchGmkgName(); 438 if ($gnr > 0) { 439 $zgemkg=$gnr; 440 EineGemarkung(false); 441 }; 442 break; 443 case 2: 444 if ($debug >= 2) {echo "<p>Gemarkungsnummer ".$zgemkg."</p>";} 445 EineGemarkung(true); 446 break; 447 case 3: 448 if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur."</p>";} 449 EineFlur(); 450 break; 451 case 4: 452 if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."</p>";} 453 EinFlurstueck(); 454 break; 455 case 5: 456 if ($debug >= 2) {echo "<p>Gemarkung ".$zgemkg." Flur ".$zflur." FlurstÃŒck ".$zzaehler."/".$znenner."</p>";} 457 EinFlurstueck(); 458 break; 459 case 9: 460 echo "<p class='err'>Bitte ein Flurstückskennzeichen eingegeben, Format 'gggg-fff-zzzz/nnn</p>"; 461 break; 462 } 351 463 } 352 464
Note: See TracChangeset
for help on using the changeset viewer.