ขอคำแนะนำเกี่ยวกับการคำนวณระยะทาง Google api และใช้ความสูงของแต่ละจังหวัดมาคำนวณหน่อยครับ
ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ขอคำแนะนำเกี่ยวกับการคำนวณระยะทาง Google api และใช้ความสูงของแต่ละจังหวัดมาคำนวณหน่อยครับ
ขอคำแนะนำเกี่ยวกับการคำนวณระยะทาง Google api และใช้ความสูงของแต่ละจังหวัดมาคำนวณหน่อยครับ
Copy
คือผมต้องการให้โปรแกรมสามารถคำนวณความสูงของแต่ละจังหวัดที่เราเดินทางผ่านอ่ะครับโดยที่เอาความสูงทั้งหมดมารวมกันโดยมีโคดดังนี้ครับ
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<LINK rel="shortcut icon" href="http://localhost/projectI/world.ico">
<!-- Romano studija, Svetainiu kurimas | http://www.roman.lt/ | Copyright (C) 2007. All rights reserved -->
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>ข้อมูลการเดินทาง</title>
<link href="style.css" rel="stylesheet" type="text/css" />
<!-- <style type="text/css">
body { background-image: url(bg.png) ;
background-attachment: fixed;
background-repeat: repeat; }
</style>-->
</head>
<body>
<table style="display:show">
<tr>
<td>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="1245" height="125">
<param name="movie" value="banner_final.swf" />
<param name="quality" value="high" />
<embed src="banner_final.swf"
quality="high"
type="application/x-shockwave-flash"
width="1245"
height="125"
pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</td>
</tr>
</table>
<table class="table-content" align="center" border="2" cellpadding="0" cellspacing="0" style="width:1248px;" height="100%;">
<tbody>
<tr>
<td>
<?php
//Make a MySQL Connection
require("config.php");
connect();
//ตั้งค่าการแสดงภาษา
mysql_query("SET NAMES UTF8");
//เพิ่มข้อมูลลงในฐานข้อมูล
$sql = "SELECT * FROM datetime";
$result = mysql_query($sql);
while($rs = mysql_fetch_array($result)){
$start_date=$rs['start_date'];
$exp_date=$rs['exp_date'];
$timemax=$rs['timemax'];
$timeh1=$rs['hour1'];
$timem1=$rs['min1'];
$timeh2=$rs['hour2'];
$timem2=$rs['min2'];
$day=$rs['day'];
}
$h = ($timemax/60);
$hex = explode(".",$h);
$hour = $hex[0];
if ($timem1>$timem2){
$min = ($timem1-$timem2);
$min = (60-$min);
}
else if ($timem1<$timem2){
$min = ($timem2-$timem1);
}
else if ($timem1==$timem2){
$min = ($timem2-$timem1);
}
echo "<center>","<h2>","แสดงข้อมูลเส้นทางในการเดินทาง","</B>","</h2>","</center>";
//echo "<h6>","<B>","วันที่ออกเดินทาง : ","</B>",$start_date," ","<B>"," เวลา : ","</B>",$timeh1,".",$timem1," น.","<br>";
//echo "<B>","วันที่เดินทางกลับ : ","</B>",$exp_date," ","<B>"," เวลา : ","</B>",$timeh2,".",$timem2," น.","<br>";
//echo "<B>","ระยะเวลาในการเดินทางท่องเที่ยว : ","</B>",$day," วัน "," คิดเป็นเวลา ",$hour," ชั่วโมง ",$min," นาที","<br>";
//echo "<B>","สถานที่ท่องเที่ยวที่ท่านเลือกเดินทาง : ","</B>","</h6>";
$sql = "SELECT * FROM vTime";
$result = mysql_query($sql);
while($rs = mysql_fetch_array($result)){
$point=$rs['Point'];
$pointarr[] = $point;
$name=$rs['Name'];
//echo $name," "," ";
}
echo "<h4><B>"," เส้นทางที่สามารถเดินทางได้"," "," ","( โปรดเลือกเส้นทางในการเดินทาง 1 เส้นทาง )","</B>";
echo "<br>";
echo "<br>";
$markerlist = count($pointarr);
/*-----------เริ่มการคำนวณใน Progressive Routing Algorithm-----------*/
$sql = "SELECT * FROM datetime";
$result = mysql_query($sql);
while($rs = mysql_fetch_array($result)){
$timemax=$rs['timemax'];
}
$sql3 = "SELECT * FROM vtime";
$result3 = mysql_query($sql3);
while($rs3 = mysql_fetch_array($result3)){
$point=$rs3['Point'];
$hour=$rs3['Hour'];
$min=$rs3['Min'];
}
//--เชคว่าเดินทางกี่จุด(รวมเดินทางกลับไปยังสถานที่แรกด้วย)เพื่อกำหนดค่าจำนวน group
if($markerlist == 3){$group_chk = 2;}
elseif($markerlist == 4){$group_chk = 6;}
elseif($markerlist == 5){$group_chk = 12;}
elseif($markerlist == 6){$group_chk = 20;}
elseif($markerlist == 7){$group_chk = 30;}
elseif($markerlist == 8){$group_chk = 42;}
elseif($markerlist == 9){$group_chk = 56;}
elseif($markerlist == 10){$group_chk = 72;}
//--------------------------
$i = 0;
$l_old=0;
$k=0;
$p=array();
$t=array();
$d=array();
$l=array();
$c=0;
//$timemax=42;//ไม่ได้ต่อเนต ลองใส่ค่าดูู
for($g=0;$g<=$group_chk;$g++)
{
$sql_p = 'SELECT * FROM point WHERE point.group='.$g.' and point.size = '.$markerlist.' order by point.layer asc'; //คิวรี่รูปแบบเส้นทางที่เป็นไปได้ทั้งหมดตามจำนวนสถานที่ (markerlist)
$result_p = mysql_query($sql_p);
while($rs_p = mysql_fetch_array($result_p))
{
$point = $rs_p['ppoint'];
$layer = $rs_p['layer'];
$group = $rs_p['group'];
$pointi = array();
$pointi = explode("-", $point);
//$sumdist = 0;
//-------fetch ค่า point ออกมาแต่ละรอบ-------
if($layer>$l_old){
for($x=0;$x<count($pointi);$x++)
{
//echo $pointi[$x]."-";
$sql_time = 'SELECT * FROM gdistime where Point =''. $pointi[$x] . ''';
$result_time = mysql_query($sql_time);
while($rs_time = mysql_fetch_array($result_time))
{
$dist = $rs_time['Dis'];
$sumdist += $dist;
$time=($rs_time['Time']/60);
$extime = explode(".",$time);
$timemin = $extime[0];
$sumtime += $timemin;
}
$breakpoint = explode(",", $pointi[$x]);
$sql_btime = 'SELECT * FROM vtime where Point ='. $breakpoint[1];
$result_btime = mysql_query($sql_btime);
while($rs_btime = mysql_fetch_array($result_btime))
{
$hour=$rs_btime['Hour'];
$min=$rs_btime['Min'];
$sumtime += ($hour+$min);
//$sumdist += ();
}
}
//-------เช็คว่าเข้าเงื่อนไขเวลาไม่เกินหรือไม่-------
if($sumtime<=$timemax)//น้อยกว่า timemax
{
$k=0;
$p[$k] = $point;
$t[$k] = $sumtime/60;
$d[$k] = $sumdist/1000;
$l[$c] = $layer;
$k++;
$c++;
}
//--------------
$sumtime=0;
$sumdist=0;
$l_old=$layer;
}//if l_old>
else if($layer==$l_old){
for($x=0;$x<count($pointi);$x++)
{
//echo $pointi[$x]."-";
$sql_time = 'SELECT * FROM gdistime where Point =''. $pointi[$x] . ''';
$result_time = mysql_query($sql_time);
while($rs_time = mysql_fetch_array($result_time))
{
$dist = $rs_time['Dis'];
$sumdist += $dist;
$time=($rs_time['Time']/60);
$extime = explode(".",$time);
$timemin = $extime[0];
$sumtime += $timemin;
}
$breakpoint = explode(",", $pointi[$x]);
$sql_btime = 'SELECT * FROM vtime where Point ='. $breakpoint[1];
$result_btime = mysql_query($sql_btime);
while($rs_btime = mysql_fetch_array($result_btime))
{
$hour=$rs_btime['Hour'];
$min=$rs_btime['Min'];
$sumtime += ($hour+$min);
}
}
//-------เช็คว่าเข้าเงื่อนไขเวลาไม่เกินหรือไม่-------
if($sumtime<=$timemax)//น้อยกว่า timemax
{
$p[$k] = $point;
$t[$k] = ($sumtime/60);
$d[$k] = $sumdist/1000;
$l[$c] = $layer;
$k++;
$c++;
}
//--------------
$sumtime=0;
$sumdist=0;
}//if l_old=
}//while
$l_old=$layer;
//---ดึงรูปแบบการเดินทาง(point)ที่สามารถเดินทางไปได้(เวลาไม่เกิน)มาแสดงและ insert ลง db
$inSQL = "DELETE FROM tmp_plan ";
$objQuery = mysql_query($inSQL);
$res=$g;
if($markerlist == 3){$res+=1;}
elseif($markerlist == 4){$res-=2;}
elseif($markerlist == 5){$res-=7;}
elseif($markerlist == 6){$res-=14;}
elseif($markerlist == 7){$res-=23;}
elseif($markerlist == 8){$res-=34;}
elseif($markerlist == 9){$res-=47;}
elseif($markerlist == 10){$res-=62;}
//echo "<br>";
echo "<form name='trip' method='POST' action = 'tripplan.php'>";
for($e=0;$e<$k;$e++)
{
if($p[$e]=='' && $res == $markerlist){
echo "ไม่สามารถเดินทางได้ในเวลาที่กำหนด";
}//else{
if($res == $markerlist ){
//echo $p[$e]."<br>";
//echo $t[$e]."<br>";
//echo $d[$e]."<br>";
$a = explode("-", $p[$e]);
echo " <input type = 'radio' name='plan' value='".$p[$e]."'>";
echo "<B>"," เส้นทางที่สามารถเดินทางได้เส้นทางที่","</B>"," <b>",($e+1),"</b> ","ระยะทางรวมประมาณ ",round($d[$e], 2)," กิโลเมตร "," / เวลาเดินทางรวมประมาณ ",round($t[$e], 2)," ชั่วโมง","<br>";
for($i = 0; $i< $markerlist;$i++){
//echo $a[$i]."<br>";
$SQl = "SELECT * FROM gDisTime WHERE point = '".$a[$i]."'";
$as = mysql_query($SQl);
while($data = mysql_fetch_array($as))
{
$ftname = $data[FTName];
//$namearr[] = $name;
$dis = $data[Dis]/1000;
$time = ($data[Time]/60)/60;
//$disarr[] = $dis;
echo " <img src='transmit.png' width='30' height='30' /> ","<B>",$ftname,"</B>"," ระยะทางประมาณ : ",round($dis, 2)," กิโลเมตร "," / เวลาเดินทางประมาณ : ",round($time, 2)," ชั่วโมง ","<br>";
}
}
echo "<br>";
$inSQL = "INSERT INTO tmp_plan ";
$inSQL .="(tmp_point,tmp_sumtime,tmp_sumdist)";
$inSQL .=" VALUES ";
$inSQL .="('".$p[$e]."',".$t[$e].",".$d[$e].")";
$objQuery = mysql_query($inSQL);
}
//}
}
$l_old=$layer;
}//for
echo "<br>";
echo "<center><B>"," กดปุ่มเพื่อยืนยันเส้นทาง >>>","</B>","<input type='submit' value='ยืนยัน'></h4><center>";
/*-----------จบการคำนวณ Progressive Routing Algorithm-----------*/
$SQl = "SELECT * FROM tmp_plan";
$as = mysql_query($SQl);
while($data = mysql_fetch_array($as)){
$aaa = $data[tmp_point];
$aarr[] = $aaa;
//echo $aaa;
}
$tmp = count($aarr);
//echo "<br>";
//echo $tmp;
//echo "<br>";
?>
</td>
</tr>
</tbody>
</table>
<table style="display:show">
<tr>
<td>
<object classid="clsid:D27CDB6E-AE6D-11cf-96B8-444553540000" codebase="http://fpdownload.macromedia.com/pub/shockwave/cabs/flash/swflash.cab#version=8,0,0,0" width="1245" height="125">
<param name="movie" value="footer.swf" />
<param name="quality" value="high" />
<embed src="footer.swf"
quality="high"
type="application/x-shockwave-flash"
width="1245"
height="125"
pluginspage="http://www.macromedia.com/go/getflashplayer" />
</object>
</td>
</tr>
</table>
</body>
</html>
คือเป็นโปรเจคต่อจากรุ่นพี่ๆเค้าทำไว้ผมต้องมาเพิ่มเติมความสามารถอ่ะครับเลยอยากขอคำแนะนำหน่อยครับขอบคุณครับ
คำแนะนำ และการใช้งาน
สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก
- ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา
โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ