1. Import

This commit is contained in:
2026-03-29 10:34:57 +02:00
parent b0e00c1259
commit a1129565af
4899 changed files with 3007593 additions and 0 deletions

170
html/geo/geocode.inc.php Normal file
View File

@@ -0,0 +1,170 @@
<?php
/*=======================================================================
*
* geocode.inc
*
* Autor: Marc Vollmann
*
=======================================================================*/
if (substr(phpversion(), 0, 1) >= "5") :
// include('../geo/geoglobal.php');
else :
include('../geo/geoglobal.php');
endif;
// Following include_once is important for function getGeoCode()
@include_once($Application['OBJECT_BASE'].'algeo.inc.php');
function GetNextRequestParameter($tcpip,$path,$requestname,$imageurl,$map,$language)
{
global $Application;
$path=$Application[strtoupper("MAP".$map."_".$language."_MAPPATH")];
$requestname=$Application["ALS_FILE"].date('his')."_".$Application["CURRENTREQUEST"];
$imageurl=$Application["ALS_URL"].$requestname.".gif";
$tcpip=$Application["ALS_LIST_D7_D"];
return array($tcpip,$path,$requestname,$imageurl);
};
// Generates the result-object containing all informations (distance, time, costs, etc.)
function getGeoCode($adStreet, $adZipcode, $adCity, $adHsno, $adCountry = "D", $adDistrict = "") {
global $MGObject;
$MGObject = new ALGeo;
list($tcpip,$path,$requestname,$imageurl) = GetNextRequestParameter($tcpip,$path,$requestname,$imageurl2,$map,$language);
$MGObject->BPUseTCPIP=true;
$MGObject->BPALS=$tcpip;
if ($Application["COM_LOG"]) $MGObject->BPLogFilePath=$Application["COM_LOG_FILE"];
// pass all available parameters to the ALS
if ($adZipcode!="") $MGObject->GeoZIP=$adZipcode;
if ($adCity!="") $MGObject->GeoTown=$adCity;
if ($adDistrict!="") $MGObject->GeoDistrict=$adDistrict;
if ($adStreet!="") $MGObject->GeoStreet=$adStreet;
if ($adHsno!="") $MGObject->GeoHousenumber=$adHsno;
if ($adCountry!="") $MGObject->GeoCountry=$adCountry;
// try to geocode as exactly as possible and ask the user as detailed as possible
// if the location can't be geocoded clearly
$MGObject->ShowDistrict=true;
//$MGObject->BFAddParam("CLIENT","USEHNR","TRUE");
// we don't need a map for the geocoding process
$MGObject->ParaMap=false;
// as a result we want all the parameters the ALS can provide us with
$MGObject->ParaRequestType=2;
// ++++++++++++++ send request to ALS ++++++++++++++++++++
$resultType=$MGObject->GeoRequest();
return $resultType;
};
// Function to check the validity of an address and to get the coordinates if it is valid.
// Returns "" if not valid else returns a two-component-array with x- and y-coordinate.
function getGeoCoordinates($adStreet, $adZipcode, $adCity, $adHsno, $adCountry = "D", $adDistrict = "") {
global $MGObject, $hq_id;
$retCoordinates = "";
// Checks for M&G-Status is enabled or disabled
// If enabled the check has to be done by the M6G-Sever,
// if disabled all addresses entered to the system would be valid
// if (MG_STATUS == "0") : return "DISABLED"; endif; // Do NOT return empty string!
$parMgStatus = getParameterValue("0", "MG_STATUS", $hq_id);
if ($parMgStatus == "") : $parMgStatus = getParameterValue("0", "MG_STATUS", "0"); endif;
if ($parMgStatus == "" || $parMgStatus == "0") : return "DISABLED"; endif; // Do NOT return empty string!
$resultType = getGeoCode($adStreet,$adZipcode,$adCity,$adHsno,$adCountry,$adDistrict);
// resultType == 2 -> exact match
if ($resultType == 2) :
// Geo-Coordinates
$xcoord=$MGObject->GeoCoordinateX;
$ycoord=$MGObject->GeoCoordinateY;
// Check for setting
if ($xcoord != "" && $xcoord != 0 && $ycoord != "" && $ycoord != 0):
$retCoordinates = array($xcoord,$ycoord);
endif;
// Initialize object
$MGObject=null;
endif;
return $retCoordinates;
};
// Generates the result-address-object according to the specified GEO-coordinates
function getAddressFromGeoCode($x, $y, $coordType = "0") {
global $MGObject;
// calculate logical coordinates out of pixel coordinates
if ($coordType != "0") :
$width_pix=(int)$Application["MAP_WIDTH"];
$height_pix=(int)$Application["MAP_HEIGHT"];
$rect=explode(",",$external_logicalrect);
$x=(int)($external_x*abs((int)$rect[0]-(int)$rect[2])/$width_pix);
$y=(int)($external_y*abs((int)$rect[1]-(int)$rect[3])/$height_pix);
endif;
// instantiate object for reverse geocoding
list($tcpip,$path,$requestname,$imageurl) = GetNextRequestParameter($tcpip,$path,$requestname,$imageurl2,$map,$language);
$MiscObject=null;
// included above ... look top of script
// include_once($Application['OBJECT_BASE'].'albasic.inc.php');
$MiscObject = new ALBasic;
$MiscObject->BPUseTCPIP=true;
$MiscObject->BPALS=$tcpip;
if ($Application["COM_LOG"]) $MiscObject->BPLogFilePath=$Application["COM_LOG_FILE"];
$MiscObject->BFAddParam("SERVER","ACTION","7");
$MiscObject->BFAddParam("CLIENT","SUBACTION","10");
$MiscObject->BFAddParam("CLIENT","COORDINATES",$x.",".$y);
$MiscObject->BFRequest();
$result=$MiscObject->BFGetParam(0,"SERVER","NEARBY","");
$resultAddress = "";
if ($result!="" && $MiscObject->BFGetParam(0,"SERVER","ERRORTEXT","")=="") {
//<LayerName>|<VisibleLayerName>|<ID>|<Description>|<x logical>|<y logical>|<x Pixel>|<y Pixel>|??|ZIP|Town|District
$data=explode("|",$result[$i]);
$resultAddress[0] = $data[9]; // Zipcode
$resultAddress[1] = $data[10]; // Town
$resultAddress[2] = $data[11]; // District
};
$MiscObject=null;
return $resultAddress;
};
?>