Changeset 83
- Timestamp:
- 03/25/11 09:44:02 (12 years ago)
- File:
-
- 1 edited
Legend:
- Unmodified
- Added
- Removed
-
trunk/data/mapbender/http/nav/alkisnav_adr.php
r68 r83 1 1 <?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 */ 3 5 import_request_variables("PG"); 4 6 include("../../conf/alkisnav_conf.php"); … … 20 22 <?php 21 23 22 23 24 function suchStrName() { 24 // Stra ßen nach Name(-nsanfang)25 // Strassen nach Name(-nsanfang) 25 26 global $con, $street, $scalestr, $str_schl, $gkz, $gemeinde, $debug; 26 27 $linelimit=120; // -> in die Conf? … … 40 41 $sql.="AND k.gemeinde=".$gemeinde." "; 41 42 } 42 $sql.="ORDER BY k.bezeichnung, k.lage LIMIT $2 ;";43 $sql.="ORDER BY k.bezeichnung, g.bezeichnung, k.lage LIMIT $2 ;"; 43 44 $v=array($match,$linelimit); 44 45 $res=pg_prepare("", $sql); … … 48 49 while($row = pg_fetch_array($res)) { 49 50 $sname=htmlentities($row["bezeichnung"], ENT_QUOTES, "UTF-8"); 50 $gkey=$row["schluesselgesamt"]; 51 $gkey=$row["schluesselgesamt"]; // Land-Kreis-Gem-Strasse 51 52 $gemname=htmlentities($row["gemname"], ENT_QUOTES, "UTF-8"); 52 53 $skey=$row["lage"]; … … 57 58 echo $sname; // nicht brauchbar fuer ax_lagebezeichnungmithausnummer.lage (Integer) 58 59 } 59 if ( ! isset($gemeinde)) {echo " in ".$gemname;}60 if ($gemeinde == "") {echo " in ".$gemname;} 60 61 echo "</div>"; 61 62 $cnt++; … … 72 73 73 74 function suchStrKey() { 74 // Stra ßen nach Strassen-Schluessel75 // Strassen nach Strassen-Schluessel 75 76 global $con, $street, $scalestr, $str_schl, $gkz, $gemeinde, $debug; 76 77 $linelimit=50; … … 101 102 $skey=$row["lage"]; 102 103 echo "\n\t<div class='stl' title='Straßenschlüssel ".$skey."'>"; 103 echo $skey." <a class='st' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&str_schl=".$gkey."' >".$sname;104 echo $skey." <a class='st' href='".$_SERVER['SCRIPT_NAME']."?gkz=".$gkz."&gemeinde=".$gemeinde."&str_schl=".$gkey."' title='".$gemname."'>".$sname; 104 105 echo "</a>"; 105 if ( ! isset($gemeinde)) {echo " in ".$gemname;}106 if ($gemeinde == "") {echo " in ".$gemname;} 106 107 echo "</div>"; 107 108 $cnt++; … … 119 120 } 120 121 121 function suchHausZurStr( ){122 // Haeuser zu einer Stra ße122 function suchHausZurStr($showParent){ 123 // Haeuser zu einer Strasse 123 124 global $con, $str_schl, $gkz, $scalestr, $scalehs, $epsg, $gemeinde, $debug; 124 125 // 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 127 131 $v=array($str_schl); 128 132 $res=pg_prepare("", $sql); … … 134 138 $kreis=$row["kreis"]; 135 139 $gemnd=$row["gemeinde"]; 140 $gemname=htmlentities($row["gemname"], ENT_QUOTES, "UTF-8"); 136 141 $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ß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ß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."&gemeinde=".$gemeinde."&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>"; 156 180 } 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."&gemeinde=".$gemeinde."&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>"; 172 182 // Haeuser zum Strassenschluessel 173 183 $sql ="SELECT replace (h.hausnummer, ' ','') AS hsnr, "; … … 177 187 $sql.="JOIN alkis_beziehungen v ON h.gml_id=v.beziehung_zu "; 178 188 $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"; // integer189 $sql.="WHERE h.land= $1 AND h.regierungsbezirk= $2 AND h.kreis= $3 AND h.gemeinde= $4 AND h.lage= $5 "; // integer 180 190 $sql.="AND v.beziehungsart='zeigtAuf' "; 181 191 $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); 183 193 $resh=pg_prepare("", $sql); 184 194 $resh=pg_execute("", $v); … … 212 222 echo "\n<p class='hilfe'>".$cnt." Hausnummern</p>"; 213 223 } else { 214 echo "\n<p class='err'>Kein Haus.</p>";224 echo "\n<p class='err'>Keine Straße.</p>"; 215 225 } 216 226 return; … … 221 231 if(isset($epsg)) { 222 232 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);} 224 234 } else { 225 235 if ($debug >= 2) {echo "\n<p class='err'>kein EPSG gesetzt</p>";} 226 236 $epsg=$gui_epsg; // aus Conf 227 237 } 228 229 238 if ($debug >= 2) { 230 239 if(isset($gemeinde)) {echo "<p>Filter Gemeinde = ".$gemeinde."</p>"; 231 240 } else {echo "\n<p>Kein Filter Gemeinde</p>";} 232 241 } 233 234 if(isset($street)) { // Eingabe in Form 235 if (is_numeric(trim($street, "*"))) { // Zahl mit Wildcard 242 if (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 236 247 if ($debug >= 2) {echo "\n<p>Suche Key='".$street."'</p>";} 237 248 suchStrKey(); // Suche nach Schluessel … … 240 251 suchStrName(); // Suche nach Name 241 252 } 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 } 248 257 } 249 258 ?>
Note: See TracChangeset
for help on using the changeset viewer.