Roley
15.09.2009, 20:23:30
Hallo,
ich bin gerade dabei einen Routenplaner zu basteln.
Der Routenplaner sollte folgendes können.
Man gibt mehrere Koordinaten ein
bsp.:
$koords1 = "10-10-10";
$koords2 = "20-20-20";
$koords3 = "30-30-30";
$koords4 = "40-40-40";
$koords5 = "50-50-50";
davon soll er die beste Route finden bsp.: das jetzt der kürzeste weg von "koords1 nach koords3 nach koords5 nach koords2 nach koords4" wäre
ich habe mit folgendem code angefangen:
<?php
if (isset($_POST["submit"]))
{
$id = $_POST["id"];
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];
$firstX = $xCoord[$i];
$secondX = $xCoord[$i+1];
$firstY = $yCoord[$i];
$secondY = $yCoord[$i+1];
$firstZ = $zCoord[$i];
$secondZ = $zCoord[$i+1];
$x = $firstX - $secondX;
$y = $firstY - $secondY;
$z = $firstZ - $secontZ;
$c= sqrt($x*$x+$y*$y);
$entfernung = sqrt($c*$c+$z*$z);
$entfernungen = round($entfernung, 0);
}
}
?>
<script type="text/javascript">
var arrInput = new Array(2);
var arrInputValue = new Array(2);
function addInput() {
arrInput.push(arrInput.length);
arrInputValue.push("");
display();
}
function display() {
document.getElementById('parah').innerHTML="";
for (intI=2;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 > 2) {
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">Koordinaten Nr.1: <input type='text' name=route1 id='route1' 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.
gruß
roley
ich bin gerade dabei einen Routenplaner zu basteln.
Der Routenplaner sollte folgendes können.
Man gibt mehrere Koordinaten ein
bsp.:
$koords1 = "10-10-10";
$koords2 = "20-20-20";
$koords3 = "30-30-30";
$koords4 = "40-40-40";
$koords5 = "50-50-50";
davon soll er die beste Route finden bsp.: das jetzt der kürzeste weg von "koords1 nach koords3 nach koords5 nach koords2 nach koords4" wäre
ich habe mit folgendem code angefangen:
<?php
if (isset($_POST["submit"]))
{
$id = $_POST["id"];
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];
$firstX = $xCoord[$i];
$secondX = $xCoord[$i+1];
$firstY = $yCoord[$i];
$secondY = $yCoord[$i+1];
$firstZ = $zCoord[$i];
$secondZ = $zCoord[$i+1];
$x = $firstX - $secondX;
$y = $firstY - $secondY;
$z = $firstZ - $secontZ;
$c= sqrt($x*$x+$y*$y);
$entfernung = sqrt($c*$c+$z*$z);
$entfernungen = round($entfernung, 0);
}
}
?>
<script type="text/javascript">
var arrInput = new Array(2);
var arrInputValue = new Array(2);
function addInput() {
arrInput.push(arrInput.length);
arrInputValue.push("");
display();
}
function display() {
document.getElementById('parah').innerHTML="";
for (intI=2;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 > 2) {
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">Koordinaten Nr.1: <input type='text' name=route1 id='route1' 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.
gruß
roley