[Mapbender-users] Adressen-Navigation
Spacebernsen
andreasnahser at gmx.de
Fri Oct 5 07:25:36 PDT 2012
Hallo Mapbender-Gemeinde!
NAch ca. zwei wochen oder einer gefühlten ewigkeit ist es nun soweit. meine
Ortssuche funktioniert. Da ab php 5.4 einige Funktionen nicht mehr
funktionieren hier einmal die veränderte adress_nav.php.
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN">
<html>
<head>
<meta http-equiv="cache-control" content="no-cache">
<meta http-equiv="pragma" content="no-cache">
<meta http-equiv="expires" content="0">
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8">
<title>Adressensuche</title>
<link rel="stylesheet" type="text/css" href="../css/adressnav.css">
</head>
<body>
<?php
// 2009-06-25: Umstellung Adress-DB auf WFS-T-Erfassung, mandantenfaehige
Programmversion (gkz=)
// 2011-06-21: Umstellung DB auf UTF-8
// 2011-07-18: EPSG variabel (transformieren), nur noch eine Conf
// 2011-10-27: nach Positionierung 'showHighlight'
// Functions: parent.parent.mb_showHighlight =>
parent.showHighlight
ini_set("display_errors", TRUE);
error_reporting(-1 ^ E_NOTICE);
include("../../conf/adressnav.conf");
//import_request_variables("PG"); veraltet
//extract($_REQUEST, EXTR_PREFIX_ALL|EXTR_REFS, 'v'); // neu
$_GET['epsg'] = str_replace("EPSG:", "" , $_GET["epsg"]);
$con_string = "host=$host port=$port dbname=$dbname user=$user
password=$password";
$con=pg_connect ($con_string) or die ("Fehler bei der Verbindung zur
Datenbank ".$dbname);
// Strassen nach Name(-nsanfang) suchen, Straßenliste ausgeben
function getStreetsByName() {
global $con, $scale_str;
$sql="SELECT ST_AsText(geom) AS x, skey, sname FROM adressen.stra WHERE
sname ILIKE $1 ORDER BY sname";
preg_match("/^(\D+)(\d*)(\D*)/",$_GET['street'],$matches); # 4 matches
name/nr/zusatz echo "match: ".$matches[1].",".$matches[2].",".$matches[3];
$matches[1] = preg_replace("/strasse/i","str", $matches[1]);
$matches[1] = preg_replace("/str\./i","str", $matches[1]);
if(preg_match("/\*/",$matches[1])){
$mat=trim(preg_replace("/\*/i","%", strtoupper($matches[1])));
} else {
$mat=trim($matches[1])."%";
}
$v=array($mat);
$res=pg_prepare("", $sql);
$res=pg_execute("", $v);
$str="";
$cnt=0;
while($row = pg_fetch_array($res)) {
preg_match('/.*\((.*) (.*)\)/',$row['x'],$coords);
$skey=$row["skey"];
$sname=$row["sname"];
$str.="\n ".$sname." <javascript:";
$str.=> <br>";
$cnt++;
}
if($cnt == 0) { $str = "Kein Ergebnis.";}
if($cnt == 1) { $_GET['str_schl']=$skey;}
return $str;
}
// Nach einem Straßenschlüssel suchen, Haeuser zu der Strasse ausgeben
function getStreetByKey(){
global $con, $scale_hn, $scale_str;
$sql= "SELECT DISTINCT ST_AsText(geom) AS xs, sname FROM adressen.stra
WHERE skey = $1 ";
$v=array($_GET['str_schl']);
$res=pg_prepare("", $sql);
$res=pg_execute("", $v);
if($row = pg_fetch_array($res)) { // stra gefunden
preg_match('/.*\((.*) (.*)\)/',$row['xs'],$coords);
$sname=$row["sname"];
// Kopfzeile zur Straße
echo " ".$sname." (".$_GET['str_schl'].") <javascript:";
echo > \n<hr>";
$sql= "SELECT DISTINCT nr, zus, ST_AsText(geom) AS x FROM
adressen.haus WHERE skey = $1 ORDER BY adressen.haus.nr, adressen.haus.zus
ASC";
$v=array($_GET['str_schl']);
$res=pg_prepare("", $sql);
$res=pg_execute("", $v);
// Liste der Hausnummern
$cnt=0;
$count=0;
echo "\n
";
while($row = pg_fetch_array($res)) {
if($count == 0) {
echo "\n
";
}
$nr=$row["nr"];
$zus=$row["zus"];
preg_match('/.*\((.*) (.*)\)/',$row['x'],$coords);
echo " ".$nr.$zus." <javascript:";
echo
"parent.parent.mb_repaintScale(\"mapframe1\",".$coords[1].",".$coords[2].",".$scale_hn.");
";
echo "parent.showHighlight(".$coords[1].",".$coords[2].");>
";
echo ">".$nr.$zus." ";
$cnt++;
$count++;
if($count == 5){
echo "";
$count=0;
}
}
echo "\n
";
} else {
echo "Kein Ergebnis.";
}
}
// Hier Start
if(isset($_GET['street']))
{
if (is_numeric($_GET['street'])) $_GET['str_schl'] = $_GET['street'];
else $str = getStreetsByName();
}
//else echo "Street ist nicht gesetzt <br />";
if(isset($_GET['str_schl'])) $str = getStreetByKey();
else echo $str;
?>
</body>
</html>
bis zum nächsten mal!
--
View this message in context: http://osgeo-org.1560.n6.nabble.com/Re-Adressen-Navigation-tp5004927p5006686.html
Sent from the mapbender-users mailing list archive at Nabble.com.
More information about the Mapbender_users
mailing list