|
|
|
ถาม google map การวัดระยะทางจากจุดสองจุด กับ เส้นทางการเดินทาง |
|
|
|
|
|
|
|
คือทำระบบค้นหาเส้นทางจากจุดบริเวณที่เราสนใจอย่นะค่ะ โดยมีการใก้เลือกค่ารัศมีด้วยว่าไม่เกินระยะทาง 1-3 เมตร
อยากทราบว่า การวัดระยะทางจากจุดสองจุดของ google นี่มันไม่มีการคำนึงถึงเส้นทางการเดินทางใช่มั๊ยค่ะ
แบบว่าการเดินทางก็ต้องใช้ฟังก์ชั่นหนึ่งแล้วจุดสองจุดก็ต้องใช้อีกฟังก์ชั่นหนึ่งใช่มั๊ยค่ะ
ถูกต้องแล้วครับ .. ว่าแต่ 1-3 เมตรนี่ เดินได้กี่ก้าวกันนะ ทำไมมันน้อยแท้ ในระดับสายตามองเห็นเลย
แยกไว้เป็นสองส่วนครับ
1. ค้นหาสถานที่จากเส้นทาง โดยเลือกจุดที่เราสนใจ
2. วัดระยะทางจากจุดที่เจอ และให้แสดงเส้นทางที่จะไป
ส่วนคำถาที่ว่า การวัดระยะทางจากจุดสองจุดของ google นี่มันไม่มีการคำนึงถึงเส้นทางการเดินทางใช่มั๊ยค่ะ
อันนี้ทาง Google Api จะเป็นตัวกลางในการ ROUTING หาเส้นทางให้อัตโนมัติครับว่าจะไปเส้นใหนใกล้สุดและเร็วสุดจากจุดทั้งสอง
ตัวอย่างที่เพิ่งทำเสร็จไปนะครับ
|
|
|
|
|
Date :
2013-04-03 07:53:28 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
วิธีนี้ google.maps.geometry.spherical.computeDistanceBetween
กับ วิธีที่ใช้ตัวนี้ SELECT id, ( 6371 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20; มันแตกต่างกันอย่างไรค่ะ
เคยลองใช่วิธีนี้ SELECT id, ( 6371 * acos( cos( radians(37) ) * cos( radians( lat ) ) * cos( radians( lng ) - radians(-122) ) + sin( radians(37) ) * sin( radians( lat ) ) ) ) AS distance FROM markers HAVING distance < 25 ORDER BY distance LIMIT 0 , 20; แต่ไม่สำเร็จพอดูที่ไฟล์ที่ใส่ตัวนี้เข้าไป ไฟล์ตัวนั้นไม่ยอมแสดงค่าออกมาค่ะ เลยสงสัยว่าทำอะไรผิด
แล้วอีกอย่างหนึ่งคือ พอคิดค่ารัศมีแล้วมันจะมีบางหมุดเกินออกมา อันนั้นเราไม่สามารถจัดการกับมันได้ใช่มั๊ยค่ะ
|
|
|
|
|
Date :
2013-04-04 16:53:47 |
By :
sweetwater |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เอาโค้ดของไฟล์นี้มาด้วยครับ
|
|
|
|
|
Date :
2013-04-05 08:41:10 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
.
|
ประวัติการแก้ไข 2013-04-06 01:30:58
|
|
|
|
Date :
2013-04-05 15:39:44 |
By :
sweetwater |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
dbxml.php ผมหมายถึงไฟล์นี้อ่ะครับผม
|
|
|
|
|
Date :
2013-04-05 15:52:50 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Code (SQL)
<?php
header("Content-type: text/xml");
require("db.php");
function parseToXML($htmlStr)
{
$xmlStr=str_replace('<','<',$htmlStr);
$xmlStr=str_replace('>','>',$xmlStr);
$xmlStr=str_replace('"','"',$xmlStr);
$xmlStr=str_replace("'",''',$xmlStr);
$xmlStr=str_replace("&",'&',$xmlStr);
return $xmlStr;
}
// Get parameters from URL
$center_lat = $_GET["latitude"];
$center_lng = $_GET["longitude"];
$radius = $_GET["radius"];
// Opens a connection to a MySQL server
$connection=mysql_connect (localhost, $username, $password);
if (!$connection) {
die('Not connected : ' . mysql_error());
}
/ Set the active MySQL database
$db_selected = mysql_select_db($database, $connection);
if (!$db_selected) {
die ('Can\'t use db : ' . mysql_error());
}
// Select all the rows in the markers table
$query = sprintf("SELECT latitude, longitude, ( 3959 * acos( cos( radians('%s') ) * cos( radians( latitude ) ) * cos( radians( longitude ) - radians('%s') ) + sin( radians('%s') ) * sin( radians( latitude ) ) ) ) AS distance FROM place HAVING distance < '%s' ORDER BY distance LIMIT 0 , 20",
mysql_real_escape_string($center_lat),
mysql_real_escape_string($center_lng),
.
mysql_real_escape_string($center_lat),
mysql_real_escape_string($radius));
$result = mysql_query($query);
if (!$result) {
die('Invalid query: ' . mysql_error());
.
}
// Start XML file, echo parent node
echo "<markers>\n";
// Iterate through the rows, printing XML nodes for each
while ($row = @mysql_fetch_assoc($result)){
// ADD TO XML DOCUMENT NODE
echo '<marker ';
echo 'name_place="' . parseToXML($row['name_place']) . '" ';
echo 'latitude="' . $row['latitude'] . '" ';
echo 'longitude="' . $row['longitude'] . '" ';
echo 'distance="' . $row['distance'] . '" ';
echo "/>\n";
}
// End XML file
echo "</markers>\n";
?>
|
ประวัติการแก้ไข 2013-04-05 15:59:55 2013-04-05 16:03:05
|
|
|
|
Date :
2013-04-05 15:55:24 |
By :
sweetwater |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ได้หรือยังครับ
3959 อันนี้วัดเป็นไมล์ เหรอครับระยะทาง
|
|
|
|
|
Date :
2013-04-08 12:13:03 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ค่ะ มันเป็นโค้ดมาจาก กูลเกิ้ล ยังไม่ได้เลยค่ะ ค่ามันไม่ออก พอกดค้นหาแล้วมันหลุดออกไป เหมือนหาสถานที่ไม่เจอค่ะ
|
|
|
|
|
Date :
2013-04-10 02:05:50 |
By :
sweetwater |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|