diff --git a/htdocs/doc/sql/stored-proc/distance.php b/htdocs/doc/sql/stored-proc/distance.php deleted file mode 100644 index 5caf597e..00000000 --- a/htdocs/doc/sql/stored-proc/distance.php +++ /dev/null @@ -1,221 +0,0 @@ -= 1.0)) THEN - RETURN 0; - END IF; - - SET nArccosEntfernungsWinkel = acos(nEntfernungsWinkel); - SET n = sin(nLat2) / sin(nArccosEntfernungsWinkel) / cos(nLat1) - tan(nLat1) / tan(nArccosEntfernungsWinkel); - - IF (n < -1.0) OR (n > 1.0) THEN - IF nLon1 = nLon2 THEN - IF nLat1 > nLat2 THEN - RETURN 90.0; - ELSE - RETURN 270.0; - END IF; - END IF; - - RETURN 0.0; - ELSE - SET nAngle = acos(n) * 180.0 / 3.141592654 - nDegCorrection; - IF nAngle < 0.0 THEN - RETURN 360 + nAngle; - ELSE - RETURN 360 - nAngle; - END IF; - END IF; - - RETURN 0; - END;"); - - sql_dropFunction('ptonline'); - sql("CREATE FUNCTION `ptonline` (nLat DOUBLE, nLon DOUBLE, nLatPt1 DOUBLE, nLonPt1 DOUBLE, nLatPt2 DOUBLE, nLonPt2 DOUBLE, nMaxDistance DOUBLE) RETURNS DOUBLE DETERMINISTIC - BEGIN - DECLARE nTmpLon DOUBLE DEFAULT 0; - DECLARE nTmpLat DOUBLE DEFAULT 0; - - DECLARE nAnglePt1Pt2 DOUBLE DEFAULT 0; - DECLARE nAnglePt1 DOUBLE DEFAULT 0; - DECLARE nAngleLinePt1 DOUBLE DEFAULT 0; - DECLARE nAnglePt2 DOUBLE DEFAULT 0; - DECLARE nAngleLinePt2 DOUBLE DEFAULT 0; - DECLARE nDistancePt1 DOUBLE DEFAULT 0; - DECLARE nDistancePt2 DOUBLE DEFAULT 0; - - DECLARE nProjLat DOUBLE DEFAULT 0; - DECLARE nProjLon DOUBLE DEFAULT 0; - DECLARE nProjAngle DOUBLE DEFAULT 0; - DECLARE nAngleProj DOUBLE DEFAULT 0; - DECLARE nAnglePt1Proj DOUBLE DEFAULT 0; - - IF nLonPt2 < nLonPt1 THEN - SET nTmpLon = nLonPt1; - SET nTmpLat = nLatPt1; - SET nLonPt1 = nLonPt2; - SET nLatPt1 = nLatPt2; - SET nLonPt2 = nTmpLon; - SET nLatPt2 = nTmpLat; - END IF; - - IF nLonPt1 = nLonPt2 THEN - SET nLonPt2 = nLonPt2 + 0.000001; - END IF; - - SET nAnglePt1Pt2 = angle(nLatPt1, nLonPt1, nLatPt2, nLonPt2); - SET nAnglePt1 = angle(nLatPt1, nLonPt1, nLat, nLon); - SET nAngleLinePt1 = nAnglePt1Pt2 - nAnglePt1; - - IF nAngleLinePt1 > 180 THEN - SET nAngleLinePt1 = 360 - nAngleLinePt1; - END IF; - IF nAngleLinePt1 < -180 THEN - SET nAngleLinePt1 = nAngleLinePt1 + 360; - END IF; - - SET nAnglePt2 = angle(nLat, nLon, nLatPt2, nLonPt2); - SET nAngleLinePt2 = nAnglePt1Pt2 - nAnglePt2; - - IF nAngleLinePt2 > 180 THEN - SET nAngleLinePt2 = 360 - nAngleLinePt2; - END IF; - IF nAngleLinePt2 < -180 THEN - SET nAngleLinePt2 = nAngleLinePt2 + 360; - END IF; - - IF (nAngleLinePt1 > 90) OR (nAngleLinePt1 < -90) THEN - SET nDistancePt1 = distance(nLat, nLon, nLatPt1, nLonPt1); - IF nDistancePt1 < nMaxDistance THEN - RETURN 1; - ELSE - RETURN 0; - END IF; - END IF; - - IF (nAngleLinePt2 > 90) OR (nAngleLinePt2 < -90) THEN - SET nDistancePt2 = distance(nLat, nLon, nLatPt2, nLonPt2); - IF nDistancePt2 < nMaxDistance THEN - RETURN 1; - ELSE - RETURN 0; - END IF; - END IF; - - IF nAngleLinePt1 > 0 THEN - IF nAnglePt1Pt2 > 270 THEN - SET nProjAngle = nAnglePt1Pt2 - 270; - ELSE - SET nProjAngle = nAnglePt1Pt2 + 90; - END IF; - ELSE - IF nAnglePt1Pt2 > 90 THEN - SET nProjAngle = nAnglePt1Pt2 - 90; - ELSE - SET nProjAngle = nAnglePt1Pt2 + 270; - END IF; - END IF; - - SET nProjLat = projLat(nLat, nLon, nMaxDistance, nProjAngle); - SET nProjLon = projLon(nLat, nLon, nMaxDistance, nProjAngle); - - SET nAnglePt1Proj = angle(nLatPt1, nLonPt1, nProjLat, nProjLon); - SET nAngleProj = nAnglePt1Pt2 - nAnglePt1Proj; - IF nAngleProj > 180 THEN - SET nAngleProj = 360 - nAngleProj; - END IF; - IF nAngleProj < -180 THEN - SET nAngleProj = nAngleProj + 360; - END IF; - - IF (nAngleLinePt1 >= 0) AND (nAngleProj < 0) THEN - RETURN 1; - ELSEIF (nAngleLinePt1 < 0) AND (nAngleProj >= 0) THEN - RETURN 1; - ELSE - RETURN 0; - END IF; - END;"); -?> diff --git a/htdocs/doc/sql/stored-proc/maintain-113.inc.php b/htdocs/doc/sql/stored-proc/maintain-113.inc.php index 523cea5a..029e54da 100644 --- a/htdocs/doc/sql/stored-proc/maintain-113.inc.php +++ b/htdocs/doc/sql/stored-proc/maintain-113.inc.php @@ -7,6 +7,198 @@ ***************************************************************************/ + sql_dropFunction('distance'); + sql("CREATE FUNCTION `distance` (lat1 DOUBLE, lon1 DOUBLE, lat2 DOUBLE, lon2 DOUBLE) RETURNS DOUBLE DETERMINISTIC + BEGIN + RETURN ACOS(COS((90-lat1) * 3.14159 / 180) * COS((90-lat2)* 3.14159 / 180) + SIN((90-lat1) * 3.14159 / 180) * SIN((90-lat2) * 3.14159 / 180) * COS((lon1-lon2) * 3.14159 / 180)) * 6370; + END;"); + + sql_dropFunction('projLon'); + sql("CREATE FUNCTION `projLon` (nLat DOUBLE, nLon DOUBLE, nDistance DOUBLE, nAngle DOUBLE) RETURNS DOUBLE DETERMINISTIC + BEGIN + DECLARE nLatProj DOUBLE DEFAULT 0; + DECLARE nDeltaLon DOUBLE DEFAULT 0; + DECLARE nLonProj DOUBLE DEFAULT 0; + + SET nLat = nLat * 3.141592654 / 180; + SET nLon = nLon * 3.141592654 / 180; + SET nAngle = nAngle * 3.141592654 / 180; + SET nDistance = (3.141592654/ (180 * 60)) * nDistance / 1.852; + + SET nLatProj = asin(sin(nLat) * cos(nDistance) + cos(nLat) * sin(nDistance) * cos(nAngle)); + SET nDeltaLon = -1 * (atan2(sin(nAngle) * sin(nDistance) * cos(nLat), cos(nDistance) - sin(nLat) * sin(nLatProj))); + SET nLonProj = (nLon - nDeltaLon + 3.141592654) - floor((nLon - nDeltaLon + 3.141592654) / 2 / 3.141592654) - 3.141592654; + + return nLonProj * 180 / 3.141592654; + END;"); + + sql_dropFunction('projLat'); + sql("CREATE FUNCTION `projLat` (nLat DOUBLE, nLon DOUBLE, nDistance DOUBLE, nAngle DOUBLE) RETURNS DOUBLE DETERMINISTIC + BEGIN + DECLARE nLatProj DOUBLE DEFAULT 0; + + SET nLat = nLat * 3.141592654 / 180; + SET nLon = nLon * 3.141592654 / 180; + SET nAngle = nAngle * 3.141592654 / 180; + SET nDistance = (3.141592654 / (180 * 60)) * nDistance / 1.852; + + SET nLatProj = asin(sin(nLat) * cos(nDistance) + cos(nLat) * sin(nDistance) * cos(nAngle)); + + return nLatProj * 180 / 3.141592654; + END;"); + + sql_dropFunction('angle'); + sql("CREATE FUNCTION `angle` (nLat1 DOUBLE, nLon1 DOUBLE, nLat2 DOUBLE, nLon2 DOUBLE) RETURNS DOUBLE DETERMINISTIC + BEGIN + DECLARE nDegCorrection DOUBLE DEFAULT 0; + DECLARE nEntfernungsWinkel DOUBLE DEFAULT 0; + DECLARE nArccosEntfernungsWinkel DOUBLE DEFAULT 0; + DECLARE n DOUBLE DEFAULT 0; + DECLARE nAngle DOUBLE DEFAULT 0; + + SET nLat1 = nLat1 * 3.141592654 / 180; + SET nLon1 = nLon1 * 3.141592654 / 180; + SET nLat2 = nLat2 * 3.141592654 / 180; + SET nLon2 = nLon2 * 3.141592654 / 180; + + SET nDegCorrection = IF(nLon1 < nLon2, 360, 0); + SET nEntfernungsWinkel = sin(nLat1) * sin(nLat2) + cos(nLat1) * cos(nLat2) * cos(nLon1 - nLon2); + + IF ((nEntfernungsWinkel < -1.0) OR (nEntfernungsWinkel >= 1.0)) THEN + RETURN 0; + END IF; + + SET nArccosEntfernungsWinkel = acos(nEntfernungsWinkel); + SET n = sin(nLat2) / sin(nArccosEntfernungsWinkel) / cos(nLat1) - tan(nLat1) / tan(nArccosEntfernungsWinkel); + + IF (n < -1.0) OR (n > 1.0) THEN + IF nLon1 = nLon2 THEN + IF nLat1 > nLat2 THEN + RETURN 90.0; + ELSE + RETURN 270.0; + END IF; + END IF; + + RETURN 0.0; + ELSE + SET nAngle = acos(n) * 180.0 / 3.141592654 - nDegCorrection; + IF nAngle < 0.0 THEN + RETURN 360 + nAngle; + ELSE + RETURN 360 - nAngle; + END IF; + END IF; + + RETURN 0; + END;"); + + sql_dropFunction('ptonline'); + sql("CREATE FUNCTION `ptonline` (nLat DOUBLE, nLon DOUBLE, nLatPt1 DOUBLE, nLonPt1 DOUBLE, nLatPt2 DOUBLE, nLonPt2 DOUBLE, nMaxDistance DOUBLE) RETURNS DOUBLE DETERMINISTIC + BEGIN + DECLARE nTmpLon DOUBLE DEFAULT 0; + DECLARE nTmpLat DOUBLE DEFAULT 0; + + DECLARE nAnglePt1Pt2 DOUBLE DEFAULT 0; + DECLARE nAnglePt1 DOUBLE DEFAULT 0; + DECLARE nAngleLinePt1 DOUBLE DEFAULT 0; + DECLARE nAnglePt2 DOUBLE DEFAULT 0; + DECLARE nAngleLinePt2 DOUBLE DEFAULT 0; + DECLARE nDistancePt1 DOUBLE DEFAULT 0; + DECLARE nDistancePt2 DOUBLE DEFAULT 0; + + DECLARE nProjLat DOUBLE DEFAULT 0; + DECLARE nProjLon DOUBLE DEFAULT 0; + DECLARE nProjAngle DOUBLE DEFAULT 0; + DECLARE nAngleProj DOUBLE DEFAULT 0; + DECLARE nAnglePt1Proj DOUBLE DEFAULT 0; + + IF nLonPt2 < nLonPt1 THEN + SET nTmpLon = nLonPt1; + SET nTmpLat = nLatPt1; + SET nLonPt1 = nLonPt2; + SET nLatPt1 = nLatPt2; + SET nLonPt2 = nTmpLon; + SET nLatPt2 = nTmpLat; + END IF; + + IF nLonPt1 = nLonPt2 THEN + SET nLonPt2 = nLonPt2 + 0.000001; + END IF; + + SET nAnglePt1Pt2 = angle(nLatPt1, nLonPt1, nLatPt2, nLonPt2); + SET nAnglePt1 = angle(nLatPt1, nLonPt1, nLat, nLon); + SET nAngleLinePt1 = nAnglePt1Pt2 - nAnglePt1; + + IF nAngleLinePt1 > 180 THEN + SET nAngleLinePt1 = 360 - nAngleLinePt1; + END IF; + IF nAngleLinePt1 < -180 THEN + SET nAngleLinePt1 = nAngleLinePt1 + 360; + END IF; + + SET nAnglePt2 = angle(nLat, nLon, nLatPt2, nLonPt2); + SET nAngleLinePt2 = nAnglePt1Pt2 - nAnglePt2; + + IF nAngleLinePt2 > 180 THEN + SET nAngleLinePt2 = 360 - nAngleLinePt2; + END IF; + IF nAngleLinePt2 < -180 THEN + SET nAngleLinePt2 = nAngleLinePt2 + 360; + END IF; + + IF (nAngleLinePt1 > 90) OR (nAngleLinePt1 < -90) THEN + SET nDistancePt1 = distance(nLat, nLon, nLatPt1, nLonPt1); + IF nDistancePt1 < nMaxDistance THEN + RETURN 1; + ELSE + RETURN 0; + END IF; + END IF; + + IF (nAngleLinePt2 > 90) OR (nAngleLinePt2 < -90) THEN + SET nDistancePt2 = distance(nLat, nLon, nLatPt2, nLonPt2); + IF nDistancePt2 < nMaxDistance THEN + RETURN 1; + ELSE + RETURN 0; + END IF; + END IF; + + IF nAngleLinePt1 > 0 THEN + IF nAnglePt1Pt2 > 270 THEN + SET nProjAngle = nAnglePt1Pt2 - 270; + ELSE + SET nProjAngle = nAnglePt1Pt2 + 90; + END IF; + ELSE + IF nAnglePt1Pt2 > 90 THEN + SET nProjAngle = nAnglePt1Pt2 - 90; + ELSE + SET nProjAngle = nAnglePt1Pt2 + 270; + END IF; + END IF; + + SET nProjLat = projLat(nLat, nLon, nMaxDistance, nProjAngle); + SET nProjLon = projLon(nLat, nLon, nMaxDistance, nProjAngle); + + SET nAnglePt1Proj = angle(nLatPt1, nLonPt1, nProjLat, nProjLon); + SET nAngleProj = nAnglePt1Pt2 - nAnglePt1Proj; + IF nAngleProj > 180 THEN + SET nAngleProj = 360 - nAngleProj; + END IF; + IF nAngleProj < -180 THEN + SET nAngleProj = nAngleProj + 360; + END IF; + + IF (nAngleLinePt1 >= 0) AND (nAngleProj < 0) THEN + RETURN 1; + ELSEIF (nAngleLinePt1 < 0) AND (nAngleProj >= 0) THEN + RETURN 1; + ELSE + RETURN 0; + END IF; + END;"); /* get prefered language from string */ diff --git a/htdocs/doc/sql/stored-proc/maintain-current.inc.php b/htdocs/doc/sql/stored-proc/maintain-current.inc.php index 240cc828..2e2a09c6 100644 --- a/htdocs/doc/sql/stored-proc/maintain-current.inc.php +++ b/htdocs/doc/sql/stored-proc/maintain-current.inc.php @@ -7,6 +7,198 @@ ***************************************************************************/ + sql_dropFunction('distance'); + sql("CREATE FUNCTION `distance` (lat1 DOUBLE, lon1 DOUBLE, lat2 DOUBLE, lon2 DOUBLE) RETURNS DOUBLE DETERMINISTIC + BEGIN + RETURN ACOS(COS((90-lat1) * 3.14159 / 180) * COS((90-lat2)* 3.14159 / 180) + SIN((90-lat1) * 3.14159 / 180) * SIN((90-lat2) * 3.14159 / 180) * COS((lon1-lon2) * 3.14159 / 180)) * 6370; + END;"); + + sql_dropFunction('projLon'); + sql("CREATE FUNCTION `projLon` (nLat DOUBLE, nLon DOUBLE, nDistance DOUBLE, nAngle DOUBLE) RETURNS DOUBLE DETERMINISTIC + BEGIN + DECLARE nLatProj DOUBLE DEFAULT 0; + DECLARE nDeltaLon DOUBLE DEFAULT 0; + DECLARE nLonProj DOUBLE DEFAULT 0; + + SET nLat = nLat * 3.141592654 / 180; + SET nLon = nLon * 3.141592654 / 180; + SET nAngle = nAngle * 3.141592654 / 180; + SET nDistance = (3.141592654/ (180 * 60)) * nDistance / 1.852; + + SET nLatProj = asin(sin(nLat) * cos(nDistance) + cos(nLat) * sin(nDistance) * cos(nAngle)); + SET nDeltaLon = -1 * (atan2(sin(nAngle) * sin(nDistance) * cos(nLat), cos(nDistance) - sin(nLat) * sin(nLatProj))); + SET nLonProj = (nLon - nDeltaLon + 3.141592654) - floor((nLon - nDeltaLon + 3.141592654) / 2 / 3.141592654) - 3.141592654; + + return nLonProj * 180 / 3.141592654; + END;"); + + sql_dropFunction('projLat'); + sql("CREATE FUNCTION `projLat` (nLat DOUBLE, nLon DOUBLE, nDistance DOUBLE, nAngle DOUBLE) RETURNS DOUBLE DETERMINISTIC + BEGIN + DECLARE nLatProj DOUBLE DEFAULT 0; + + SET nLat = nLat * 3.141592654 / 180; + SET nLon = nLon * 3.141592654 / 180; + SET nAngle = nAngle * 3.141592654 / 180; + SET nDistance = (3.141592654 / (180 * 60)) * nDistance / 1.852; + + SET nLatProj = asin(sin(nLat) * cos(nDistance) + cos(nLat) * sin(nDistance) * cos(nAngle)); + + return nLatProj * 180 / 3.141592654; + END;"); + + sql_dropFunction('angle'); + sql("CREATE FUNCTION `angle` (nLat1 DOUBLE, nLon1 DOUBLE, nLat2 DOUBLE, nLon2 DOUBLE) RETURNS DOUBLE DETERMINISTIC + BEGIN + DECLARE nDegCorrection DOUBLE DEFAULT 0; + DECLARE nEntfernungsWinkel DOUBLE DEFAULT 0; + DECLARE nArccosEntfernungsWinkel DOUBLE DEFAULT 0; + DECLARE n DOUBLE DEFAULT 0; + DECLARE nAngle DOUBLE DEFAULT 0; + + SET nLat1 = nLat1 * 3.141592654 / 180; + SET nLon1 = nLon1 * 3.141592654 / 180; + SET nLat2 = nLat2 * 3.141592654 / 180; + SET nLon2 = nLon2 * 3.141592654 / 180; + + SET nDegCorrection = IF(nLon1 < nLon2, 360, 0); + SET nEntfernungsWinkel = sin(nLat1) * sin(nLat2) + cos(nLat1) * cos(nLat2) * cos(nLon1 - nLon2); + + IF ((nEntfernungsWinkel < -1.0) OR (nEntfernungsWinkel >= 1.0)) THEN + RETURN 0; + END IF; + + SET nArccosEntfernungsWinkel = acos(nEntfernungsWinkel); + SET n = sin(nLat2) / sin(nArccosEntfernungsWinkel) / cos(nLat1) - tan(nLat1) / tan(nArccosEntfernungsWinkel); + + IF (n < -1.0) OR (n > 1.0) THEN + IF nLon1 = nLon2 THEN + IF nLat1 > nLat2 THEN + RETURN 90.0; + ELSE + RETURN 270.0; + END IF; + END IF; + + RETURN 0.0; + ELSE + SET nAngle = acos(n) * 180.0 / 3.141592654 - nDegCorrection; + IF nAngle < 0.0 THEN + RETURN 360 + nAngle; + ELSE + RETURN 360 - nAngle; + END IF; + END IF; + + RETURN 0; + END;"); + + sql_dropFunction('ptonline'); + sql("CREATE FUNCTION `ptonline` (nLat DOUBLE, nLon DOUBLE, nLatPt1 DOUBLE, nLonPt1 DOUBLE, nLatPt2 DOUBLE, nLonPt2 DOUBLE, nMaxDistance DOUBLE) RETURNS DOUBLE DETERMINISTIC + BEGIN + DECLARE nTmpLon DOUBLE DEFAULT 0; + DECLARE nTmpLat DOUBLE DEFAULT 0; + + DECLARE nAnglePt1Pt2 DOUBLE DEFAULT 0; + DECLARE nAnglePt1 DOUBLE DEFAULT 0; + DECLARE nAngleLinePt1 DOUBLE DEFAULT 0; + DECLARE nAnglePt2 DOUBLE DEFAULT 0; + DECLARE nAngleLinePt2 DOUBLE DEFAULT 0; + DECLARE nDistancePt1 DOUBLE DEFAULT 0; + DECLARE nDistancePt2 DOUBLE DEFAULT 0; + + DECLARE nProjLat DOUBLE DEFAULT 0; + DECLARE nProjLon DOUBLE DEFAULT 0; + DECLARE nProjAngle DOUBLE DEFAULT 0; + DECLARE nAngleProj DOUBLE DEFAULT 0; + DECLARE nAnglePt1Proj DOUBLE DEFAULT 0; + + IF nLonPt2 < nLonPt1 THEN + SET nTmpLon = nLonPt1; + SET nTmpLat = nLatPt1; + SET nLonPt1 = nLonPt2; + SET nLatPt1 = nLatPt2; + SET nLonPt2 = nTmpLon; + SET nLatPt2 = nTmpLat; + END IF; + + IF nLonPt1 = nLonPt2 THEN + SET nLonPt2 = nLonPt2 + 0.000001; + END IF; + + SET nAnglePt1Pt2 = angle(nLatPt1, nLonPt1, nLatPt2, nLonPt2); + SET nAnglePt1 = angle(nLatPt1, nLonPt1, nLat, nLon); + SET nAngleLinePt1 = nAnglePt1Pt2 - nAnglePt1; + + IF nAngleLinePt1 > 180 THEN + SET nAngleLinePt1 = 360 - nAngleLinePt1; + END IF; + IF nAngleLinePt1 < -180 THEN + SET nAngleLinePt1 = nAngleLinePt1 + 360; + END IF; + + SET nAnglePt2 = angle(nLat, nLon, nLatPt2, nLonPt2); + SET nAngleLinePt2 = nAnglePt1Pt2 - nAnglePt2; + + IF nAngleLinePt2 > 180 THEN + SET nAngleLinePt2 = 360 - nAngleLinePt2; + END IF; + IF nAngleLinePt2 < -180 THEN + SET nAngleLinePt2 = nAngleLinePt2 + 360; + END IF; + + IF (nAngleLinePt1 > 90) OR (nAngleLinePt1 < -90) THEN + SET nDistancePt1 = distance(nLat, nLon, nLatPt1, nLonPt1); + IF nDistancePt1 < nMaxDistance THEN + RETURN 1; + ELSE + RETURN 0; + END IF; + END IF; + + IF (nAngleLinePt2 > 90) OR (nAngleLinePt2 < -90) THEN + SET nDistancePt2 = distance(nLat, nLon, nLatPt2, nLonPt2); + IF nDistancePt2 < nMaxDistance THEN + RETURN 1; + ELSE + RETURN 0; + END IF; + END IF; + + IF nAngleLinePt1 > 0 THEN + IF nAnglePt1Pt2 > 270 THEN + SET nProjAngle = nAnglePt1Pt2 - 270; + ELSE + SET nProjAngle = nAnglePt1Pt2 + 90; + END IF; + ELSE + IF nAnglePt1Pt2 > 90 THEN + SET nProjAngle = nAnglePt1Pt2 - 90; + ELSE + SET nProjAngle = nAnglePt1Pt2 + 270; + END IF; + END IF; + + SET nProjLat = projLat(nLat, nLon, nMaxDistance, nProjAngle); + SET nProjLon = projLon(nLat, nLon, nMaxDistance, nProjAngle); + + SET nAnglePt1Proj = angle(nLatPt1, nLonPt1, nProjLat, nProjLon); + SET nAngleProj = nAnglePt1Pt2 - nAnglePt1Proj; + IF nAngleProj > 180 THEN + SET nAngleProj = 360 - nAngleProj; + END IF; + IF nAngleProj < -180 THEN + SET nAngleProj = nAngleProj + 360; + END IF; + + IF (nAngleLinePt1 >= 0) AND (nAngleProj < 0) THEN + RETURN 1; + ELSEIF (nAngleLinePt1 < 0) AND (nAngleProj >= 0) THEN + RETURN 1; + ELSE + RETURN 0; + END IF; + END;"); /* get prefered language from string */ diff --git a/htdocs/doc/sql/stored-proc/maintain.php b/htdocs/doc/sql/stored-proc/maintain.php index b01099cd..03febbb0 100644 --- a/htdocs/doc/sql/stored-proc/maintain.php +++ b/htdocs/doc/sql/stored-proc/maintain.php @@ -21,7 +21,7 @@ flush(); } else - echo "enter DB $db_root_username password:"; + echo "enter DB $db_root_username password: "; $fh = fopen('php://stdin', 'r'); $db_root_password = trim(fgets($fh, 1024));