Hallo,
ich bin gerade dabei einen Routenplaner zu basteln.
Der Routenplaner sollte folgendes können.
Man gibt mehrere Koordinaten ein
bsp.:
davon soll er die beste Route finden bsp.: das jetzt der kürzeste weg von "startkoordinate nach koords1 nach koords3 nach koords5 nach koords2 nach koords4" wäre
ich habe mit folgendem code angefangen:
komme jedoch leider nicht weiter, da mir der plan dazu irgendwie fehlt und hoffe das ihr mir helfen könnt.
es müsste halt am ende ungefähr so aussehen:
Startpunkt: 10-10-10
weiter zu Punkt Nr.1 : 20-20-20
Punkt Nr.1 : 20-20-20
weiter zu Punkt Nr.2 : 50-50-50
Punkt Nr.2 : 50-50-50
weiter zu Punkt Nr.3 : 30-30-30
Punkt Nr.3 : 30-30-30
weiter zu Punkt Nr.4 : 40-40-$0
Punkt Nr.4 : 40-40-40
weiter zu Punkt Nr.5 : 60-60-60
gruß
roley
ich bin gerade dabei einen Routenplaner zu basteln.
Der Routenplaner sollte folgendes können.
Man gibt mehrere Koordinaten ein
bsp.:
PHP:
$startkoordinate1 = "10-10-10";
$koords1 = "20-20-20";
$koords2 = "30-30-30";
$koords3 = "40-40-40";
$koords4 = "50-50-50";
$koords5 = "60-60-60";
davon soll er die beste Route finden bsp.: das jetzt der kürzeste weg von "startkoordinate nach koords1 nach koords3 nach koords5 nach koords2 nach koords4" wäre
ich habe mit folgendem code angefangen:
PHP:
<?php
include("config.php");
if (isset($_POST["submit"]))
{
$id = $_POST["id"];
$startkoords = $_POST["startkoords"];
$splitStartKoords = explode("-", $startkoords);
$startX = $splitStartKoords[0];
$startY = $splitStartKoords[1];
$startZ = $splitStartKoords[2];
echo "<b>Startpunkt:</b> $startkoords<br/>";
for ($i = 1; $i <= $id; $i++)
{
$koords[$i] = $_POST["route$i"];
$splitKoords = explode("-", $koords[$i]);
$xCoord[$i] = $splitKoords[0];
$yCoord[$i] = $splitKoords[1];
$zCoord[$i] = $splitKoords[2];
//von Startkoordinate die nächst näherste Koordinate finden
$firstX = $startX;
$secondX = $xCoord[$i];
$firstY = $startY;
$secondY = $yCoord[$i];
$firstZ = $startZ;
$secondZ = $zCoord[$i];
$x = $firstX - $secondX;
$y = $firstY - $secondY;
$z = $firstZ - $secontZ;
$c= sqrt($x*$x+$y*$y);
$entfernung = sqrt($c*$c+$z*$z);
$entfernungen = round($entfernung, 2);
//weiter weiß i ned oder irgendwas ist falsch
}
}
?>
<script type="text/javascript">
var arrInput = new Array(1);
var arrInputValue = new Array(1);
function addInput() {
arrInput.push(arrInput.length);
arrInputValue.push("");
display();
}
function display() {
document.getElementById('parah').innerHTML="";
for (intI=1;intI<arrInput.length;intI++) {
document.getElementById('parah').innerHTML+=createInput(arrInput[intI], arrInputValue[intI]);
}
}
function saveValue(intId,strValue) {
arrInputValue[intId]=strValue;
}
function createInput(id,value) {
return "Koordinaten Nr."+id+": <input type='text' name=route"+id+" id='route"+ id +"' onChange='javascript:saveValue("+ id +",this.value)' value='"+ value +"'><input type='hidden' name='id' value='"+ id +"'><br><br>";
}
function deleteInput() {
if (arrInput.length > 1) {
arrInput.pop();
arrInputValue.pop();
}
display();
}
</script>
<p align="center"><b>Routenplaner</b> </p>
<p align="center"><hr /></p>
<form method='post' action=''>
<p align="center">Startkoordinate: <input type='text' name='startkoords' id='startkoords' value=''><br>
</p>
<p id="parah" align="center"></p>
<p align="center">
<input type="submit" value="submit" name="submit">
</p>
</form>
<p align="center">
<br>
<a href="javascript:addInput()">Add Coords</a> - <a href="javascript:deleteInput()">Delete Coords</a></p>
komme jedoch leider nicht weiter, da mir der plan dazu irgendwie fehlt und hoffe das ihr mir helfen könnt.
es müsste halt am ende ungefähr so aussehen:
Startpunkt: 10-10-10
weiter zu Punkt Nr.1 : 20-20-20
Punkt Nr.1 : 20-20-20
weiter zu Punkt Nr.2 : 50-50-50
Punkt Nr.2 : 50-50-50
weiter zu Punkt Nr.3 : 30-30-30
Punkt Nr.3 : 30-30-30
weiter zu Punkt Nr.4 : 40-40-$0
Punkt Nr.4 : 40-40-40
weiter zu Punkt Nr.5 : 60-60-60
gruß
roley
Zuletzt bearbeitet: