Changeset 306 for trunk/mapbender/http
- Timestamp:
- 01/23/14 14:53:26 (10 years ago)
- Location:
- trunk/mapbender/http/nav
- Files:
-
- 3 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/mapbender/http/nav/alkisnav_adr.php
r284 r306 5 5 2013-04-29 Test mit IE 6 6 2013-05-07 Strukturierung des Programms 7 2013-05-14 Feinkorrekturen. 8 7 2013-05-14 Feinkorrekturen 8 2013-05-15 Gruppierung nach Gemeinde, mehrfache HsNr (ap_pto.advstandardmodell) unterdrÃŒcken, Icon f. StraÃe 9 2014-01-23 Link zum Auskunft-Modul fÃŒr StraÃe 9 10 ToDo: 11 - Gruppierung (mit Zeile) der StraÃenliste nach Gemeinde 10 12 - Eingabe aus "Balken" von Buchauskunft "Lage" zulassen: Numerisch: Gem-Str-Haus-lfd 13 -- lfd (NebengebÀude) als Untergliederung der geklickten Haus-Nr anzeigen 11 14 Analog zur Zerlegung des FS-Kennz in _fls 12 15 - Mouse-Over in StraÃenliste soll Position zeigen. … … 15 18 $cntget = extract($_GET); 16 19 include("../../conf/alkisnav_conf.php"); 20 include("alkisnav_fkt.php"); // Funktionen 17 21 $con_string = "host=".$host." port=".$port." dbname=".$dbname.$dbvers.$gkz." user=".$user." password=".$password; 18 22 $con = pg_connect ($con_string) or die ("Fehler bei der Verbindung zur Datenbank ".$$dbname.$dbvers.$gkz); … … 32 36 document.getElementById('transaktiontitle').innerHTML = trans; 33 37 } 38 function imFenster(dieURL) { 39 var link = encodeURI(dieURL); 40 window.open(link,'','left=10,top=10,width=620,height=800,resizable=yes,menubar=no,toolbar=no,location=no,status=no,scrollbars=yes'); 41 } 34 42 </script> 35 43 </head> … … 42 50 END; 43 51 44 function suchStrName() { 45 // Strassen nach Name(-nsanfang) 46 global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug; 52 function suchStrName() { // Strassen nach Name(-nsanfang) 53 global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug, $auskpath; 47 54 $linelimit=120; // -> in die Conf? 48 55 preg_match("/^(\D+)(\d*)(\D*)/",$street,$matches); # 4 matches name/nr/zusatz echo "match: ".$matches[1].",".$matches[2].",".$matches[3]; … … 54 61 $match=trim($matches[1])."%"; 55 62 } 56 $sql ="SELECT g. bezeichnung AS gemname, k.bezeichnung, k.schluesselgesamt, k.lage ";63 $sql ="SELECT g.gemeinde, g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage "; 57 64 $sql.="FROM ax_lagebezeichnungkatalogeintrag as k "; 58 65 $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 "; … … 68 75 break; 69 76 } 70 $sql.="ORDER BY k.bezeichnung, g.bezeichnung, k.lage LIMIT $2 ;";77 $sql.="ORDER BY g.bezeichnung, k.bezeichnung, k.lage LIMIT $2 ;"; 71 78 $v=array($match,$linelimit); 72 79 $res=pg_prepare("", $sql); … … 74 81 if (!$res) {return "\n<p class='err'>Fehler bei Name</p>";} 75 82 $cnt = 0; 83 $gwgem=""; 76 84 while($row = pg_fetch_array($res)) { 77 $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 78 $gkey=$row["schluesselgesamt"]; // Land-Kreis-Gem-Strasse 79 $gemname=htmlentities($row["gemname"], ENT_QUOTES, "UTF-8"); 80 $skey=$row["lage"]; 85 $gemname=$row["gemname"]; 86 $gemnr=$row["gemeinde"] ; 87 if ($gwgem != $gemname) { 88 if ($gfilter != 1) { 89 zeile_gemeinde($gemnr, $gemname, false); // ToDo: aber ohne Link oder Link verarbeiten können 90 } 91 $gwgem=$gemname; 92 } 93 $gkey=$row["schluesselgesamt"]; // Land-RegBez-Kreis-Gem-Strasse - fÃŒr weitere Suche 94 $skey=$row["lage"]; // Nur Str.-schl. daraus 95 $kgml=$row["gml_id"]; // ID von Katalog 96 97 // +++ in function_zeile_strasse() 98 $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 81 99 echo "\n\t<div class='stl' title='Straßenschlüssel ".$skey."'>"; 82 if (trim($skey, "0..9") == "") { // Integer 83 echo "<a class='stl' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&str_schl=".$gkey."'>".$sname."</a>"; 84 } else { // Klassifizierung? 85 echo $sname; // nicht brauchbar fuer ax_lagebezeichnungmithausnummer.lage (Integer) 86 } 87 switch ($gfilter) { 88 case 0: // Kein Filter 89 echo " in ".$gemname; 90 break; 91 case 2: // Liste 92 echo " in ".$gemname; 93 break; 94 default: // Einzelwert 95 break; 96 } 100 // Icon -> Buchnachweis 101 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisstrasse.php?gkz=".$gkz."&gmlid=".$kgml."\")'>"; 102 echo "\n\t\t<img class='nwlink' src='ico/Lage_mit_Haus.ico' width='16' height='16' alt='STR' title='Straße'>"; 103 echo "\n\t</a>"; 104 echo "<a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&str_schl=".$gkey."'>".$sname."</a>"; 97 105 echo "</div>"; 106 // +++ function ende 98 107 $cnt++; 99 108 } … … 110 119 } 111 120 112 function suchStrKey() { 113 // Strassen nach Strassen-Schluessel 114 global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug; 115 $linelimit=50; 121 function suchStrKey() { // Strassen nach num. Schluessel 122 global $street, $scalestr, $str_schl, $gkz, $gemeinde, $epsg, $gfilter, $debug, $auskpath; 123 $linelimit=60; 116 124 if(preg_match("/\*/",$street)) { 117 125 $match=trim(preg_replace("/\*/i","%",$street)); 118 // -> Anwender mussfuehrende Nullen eingeben oder fuehrende Wildcard126 // fuehrende Nullen eingeben oder fuehrende Wildcard 119 127 } else { 120 128 $match=str_pad($street, 5, "0", STR_PAD_LEFT); // "Wie eine Zahl" verarbeiten 121 129 } 122 //if ($debug >= 2) {echo "<p>sql-Match='".$match."'</p>";} 123 $sql ="SELECT g.bezeichnung AS gemname, k.bezeichnung, k.schluesselgesamt, k.lage "; 130 $sql ="SELECT g.bezeichnung AS gemname, k.gml_id, k.bezeichnung, k.schluesselgesamt, k.lage "; 124 131 $sql.="FROM ax_lagebezeichnungkatalogeintrag as k "; 125 132 $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 "; … … 132 139 $sql.="AND k.gemeinde in (".$gemeinde.") "; 133 140 break; 134 default: // kein Filter 135 break; 136 } 137 141 } 138 142 $sql.="ORDER BY k.lage, k.bezeichnung LIMIT $2 ;"; 139 143 $v=array($match,$linelimit); … … 147 151 $gemname=htmlentities($row["gemname"], ENT_QUOTES, "UTF-8"); 148 152 $skey=$row["lage"]; 153 $kgml=$row["gml_id"]; // ID von Katalog 154 155 // +++ in function_zeile_strasse() 149 156 echo "\n\t<div class='stl' title='Straßenschlüssel ".$skey."'>"; 157 158 // Icon -> Buchnachweis 159 echo "\n\t<a title='Nachweis' href='javascript:imFenster(\"".$auskpath."alkisstrasse.php?gkz=".$gkz."&gmlid=".$kgml."\")'>"; 160 echo "\n\t\t<img class='nwlink' src='ico/Lage_mit_Haus.ico' width='16' height='16' alt='STR' title='Straße'>"; 161 echo "\n\t</a>"; 162 150 163 echo $skey." <a class='st' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&str_schl=".$gkey."' title='".$gemname."'>".$sname; 151 164 echo "</a>"; … … 159 172 } 160 173 echo "</div>"; 174 // function ende 161 175 $cnt++; 162 176 } … … 173 187 } 174 188 175 function suchHausZurStr($showParent){ 176 // Haeuser zu einer Strasse 189 function suchHausZurStr($showParent) { // Haeuser zu einer Strasse 177 190 global $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $epsg, $gfilter, $debug; 191 192 // Head 178 193 // Strasse zum Strassenschluessel 179 194 $sql ="SELECT g.bezeichnung AS gemname, k.bezeichnung, k.land, k.regierungsbezirk, k.kreis, k.gemeinde, k.lage "; … … 181 196 $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 "; 182 197 $sql.="WHERE k.schluesselgesamt = $1 LIMIT 1"; 183 $v=array($str_schl); 198 $v=array($str_schl); // Schluessel-Gesamt .. 184 199 $res=pg_prepare("", $sql); 185 200 $res=pg_execute("", $v); 186 if($row = pg_fetch_array($res)) { // Strassenschluesselgefunden201 if($row = pg_fetch_array($res)) { // .. gefunden 187 202 $sname=$row["bezeichnung"]; 188 $land =$row["land"]; 203 $land =$row["land"]; // Einzel-Felder fÃŒr JOIN _lagebezeichnung_ 189 204 $regb =$row["regierungsbezirk"]; 190 205 $kreis=$row["kreis"]; 191 206 $gemnd=$row["gemeinde"]; 207 $nr=$row["lage"]; 192 208 $gemname=htmlentities($row["gemname"], ENT_QUOTES, "UTF-8"); 193 $nr=$row["lage"];194 209 if ($showParent) { 195 // eineKoordinate zur Strasse besorgen210 // EINE Koordinate zur Strasse besorgen 196 211 // ax_Flurstueck >zeigtAuf> ax_LagebezeichnungOhneHausnummer 197 212 $sqlko ="SELECT "; … … 224 239 echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalestr."); "; 225 240 echo "parent.parent.showHighlight(".$x.",".$y."); "; 226 //echo "document.location.href=\"".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&str_schl=".$str_schl."\"";241 // echo "document.location.href=\"".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&str_schl=".$str_schl."\""; 227 242 echo "' "; // end href 228 243 echo "\n\t\tonmouseover='parent.parent.showHighlight(" .$x. "," .$y. ")' "; … … 243 258 } 244 259 echo "\n<hr>"; 260 261 // Body 245 262 // Haeuser zum Strassenschluessel 246 $sql="SELECT replace(h.hausnummer,' ','') AS hsnr, ";263 $sql="SELECT min(replace(h.hausnummer,' ','')) AS hsnr, "; 247 264 if($epsg == "25832") { // Transform nicht notwendig 248 $sql.=" st_x(p.wkb_geometry) AS x, ";249 $sql.=" st_y(p.wkb_geometry) AS y ";265 $sql.="avg (st_x(p.wkb_geometry)) AS x, "; 266 $sql.="avg (st_y(p.wkb_geometry)) AS y "; 250 267 } else { 251 $sql.=" st_x(st_transform(p.wkb_geometry,".$epsg.")) AS x, ";252 $sql.=" st_y(st_transform(p.wkb_geometry,".$epsg.")) AS y ";268 $sql.="avg (st_x(st_transform(p.wkb_geometry,".$epsg."))) AS x, "; 269 $sql.="avg (st_y(st_transform(p.wkb_geometry,".$epsg."))) AS y "; 253 270 } 254 271 $sql.="FROM ap_pto p JOIN alkis_beziehungen v ON p.gml_id = v.beziehung_von "; … … 256 273 $sql.="WHERE v.beziehungsart='dientZurDarstellungVon' AND p.art = 'HNR' "; 257 274 $sql.="AND h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 "; 275 $sql.="GROUP BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2) "; 258 276 $sql.="ORDER BY lpad(split_part(hausnummer,' ',1), 4, '0'), split_part(hausnummer,' ',2);"; 277 // Problem: mehrere Koordinaten fÃŒr verschiedene MaÃstÀbe der Kartendarstellung 278 // Diese sollten nicht mehrfach gelistet werden. FÃŒr Positionierung "irgendeine" nehmen. 279 // Lösung: ÃŒber GROUP BY in SQL. Alternative Lösungen wÀren: 280 // 1. Gruppenwechsel bei Abarbeitung des Result 281 // 2. Subquery mit LIMIT 1 statt JOIN 282 // 3. Geometrie aus GebÀude-Mittelpunkt statt aus PrÀsentationsobjekt der Hausnummer 259 283 260 284 $v=array($land,$regb,$kreis,$gemnd,$nr); 261 285 $resh=pg_prepare("", $sql); 262 286 $resh=pg_execute("", $v); 287 #echo "<p class='dbg'>SQL='".$sql."'<br>Array=".$v[]."</p>"; // TEST 288 263 289 $cnt=0; 264 290 $count=0; … … 272 298 echo "<a href='"; 273 299 echo "javascript:"; 274 echo "transtitle(\"auf Haus positioniert\"); ";300 echo "transtitle(\"auf Haus ".$hsnr." positioniert\"); "; 275 301 echo "parent.parent.parent.mb_repaintScale(\"mapframe1\",".$x.",".$y.",".$scalehs."); "; 276 302 echo "parent.parent.showHighlight(".$x.",".$y.");' "; … … 288 314 if($count > 0) {echo "\n</tr>";} 289 315 echo "\n</table>"; 290 echo "\n<p class='anz'>".$cnt." Hausnummern</p>"; 316 if ($cnt > 1) { 317 echo "\n<p class='anz'>".$cnt." Hausnummern</p>"; 318 } 291 319 } else { 292 320 echo "\n<p class='anz'>Keine Straße</p>"; … … 298 326 // =========== 299 327 if(isset($epsg)) { 300 #if ($debug >= 2) {echo "\n<p>aktueller EPSG='".$epsg."'</p>";} // aus MB301 328 $epsg = str_replace("EPSG:", "" , $_REQUEST["epsg"]); 302 329 } else { 303 #if ($debug >= 1) {echo "\n<p class='err'>kein EPSG gesetzt</p>";}304 330 $epsg=$gui_epsg; // aus Conf 305 331 } 306 #if ($debug >= 2) {echo "<p>Filter Gemeinde = ".$gemeinde."</p>";}307 332 if ($gemeinde == "") { 308 333 $gfilter = 0; // ungefiltert … … 312 337 $gfilter = 2; // Liste 313 338 } 314 if (isset($str_schl)) { // aus Link 339 340 // +++ Zerlegung Eingabe aus "Balken" von Buchauskunft "Lage": 341 // Numerisch: Gem-Str-Haus-lfd 342 343 if ($str_schl != "") { // aus Link 315 344 $trans="Hausnummern zur Straße"; 316 345 suchHausZurStr(true); 317 } elseif( isset($street)) { // Eingabe in Form346 } elseif($street != "") { // Eingabe in Form 318 347 if (trim($street, "*,0..9") == "") { // Zahl, ggf. mit Wildcard 319 348 $trans="Suche Straßenschlüssel \"".$street."\""; -
trunk/mapbender/http/nav/alkisnav_fls.php
r284 r306 8 8 2013-05-07 Strukturierung des Programms, redundanten Code in Functions zusammen fassen 9 9 2013-05-14 Variablen-Namen geordnet, Hervorhebung aktuelles Objekt, Title auch auf Icon, IE zeigt sonst alt= als Title dar. 10 2013-10-15 missing Parameter 10 11 */ 11 12 $cntget = extract($_GET); … … 123 124 } 124 125 125 function zeile_gemeinde ($gmdnr, $gmdname, $aktuell) {126 // Eine Zeile zu Gemeinde ausgeben, SchlÃŒssel und Name wird ÃŒbergeben127 global $gkz, $gemeinde, $epsg;128 $stadt=htmlentities($gmdname, ENT_QUOTES, "UTF-8");129 $bez=urlencode($gmdname);130 if ($aktuell) {$cls=" aktuell";}131 echo "\n<div class='gm".$cls."' title='Gemeinde'>";132 echo "\n\t\t<img class='nwlink' src='ico/Gemeinde.ico' width='16' height='16' alt='Stadt'>";133 echo " Gem. <a href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&gm=".$gmdnr."&bez=".$bez."'>";134 echo " ".$stadt."</a> (".$gmdnr.")";135 echo "\n</div>";136 return;137 }138 139 126 function zeile_gemarkung($gkgnr, $gkgname, $aktuell) { 140 127 // Eine Zeile zu Gemarkung ausgeben … … 167 154 $url=$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&epsg=".$epsg."&fskennz=".$gkgnr."-".$flurnr; 168 155 echo "<a title='Aktuelle Flurstücke suchen' href='".$url."'>Flur ".$flurnr." </a>"; 169 If ($histlnk) { // Link zur hist. Suche anbieten156 if ($histlnk) { // Link zur hist. Suche anbieten 170 157 echo " <a class='hislnk' title='Historische Flurstücke der Flur' href='".$url."&hist=j'>Hist.</a>"; 171 158 } … … 447 434 $zfs++; 448 435 } 449 // Foot 436 437 // Flur-Foot 450 438 if($zfs == 0) { 451 439 echo "\n<p class='anz'>Kein Flurstück.</p>"; … … 507 495 // Head 508 496 gg_head($zgemkg, false); 509 zeile_flur($zgemkg, $zflur, true );497 zeile_flur($zgemkg, $zflur, true, false); 510 498 511 499 // Body -
trunk/mapbender/http/nav/alkisnav_grd.php
r284 r306 9 9 2013-05-07 Strukturierung des Programms, redundanten Code in Functions zusammen fassen 10 10 2013-05-14 Hervorhebung aktuelles Objekt. Title "Nachweis" auch auf Icon. 11 2013-12-12 Limit in EinBlatt von 200 weit hoch gesetzt (bis BlÀttern möglich wird) 11 12 */ 12 13 $cntget = extract($_GET); … … 289 290 } 290 291 // Body 291 GB_Buchung_FS(200, $zgbbez."-".$zblatt); // Blatt -> Buchung -> Flurstueck (max. 200) 292 // 2013-12-12 Limit von ursprÃŒnglich 200 weit hoch gesetzt 293 GB_Buchung_FS(1000, $zgbbez."-".$zblatt); // Blatt -> Buchung -> Flurstueck (Limitiert) 294 // ++ besser Limit wieder runter und "BlÀttern"-Funktion einfÃŒhren 292 295 return; 293 296 }
Note: See TracChangeset
for help on using the changeset viewer.