|
|
|
สอบถามเรื่องการแนะนำสถานที่ท่องเที่ยวในรัศมี 20 กม.จากตำแหน่งปัจจุบันของผู้ใช้งาน โดยอ้างอิงตำแหน่งจาก google map |
|
|
|
|
|
|
|
เรื่องการแนะนำสถานที่ท่องเที่ยวในรัศมี 20 กม. จากตำแหน่งปัจจุบันของผู้ใช้งานว่ามีสถานที่ท่องเที่ยวไหนบ้าง โดยมีการแสดงตำแหน่งจาก google map
สวัสดีค่ะ
อยากจะสอบถามเรื่องการแนะนำสถานที่ท่องเที่ยวในรัศมี 20 กม.จากตำแหน่งปัจจุบันของผู้ใช้งาน ว่ามีสถานที่ท่องเที่ยวไหนบ้าง มีดึงข้อมูลละติจูดและลองติจูดมาจาก google map การทำงานของระบบมี 2 หน้าที่ คือ สมาชิกและผู้ใช้งาน โดยมีหน้าที่แตกต่างกันดังนี้
สมาชิก >> สามารถเพิ่มสถานที่ท่องเที่ยวได้ โดยการเพิ่มจะต้องมีการระบุตำแหน่งของสถานที่ท่องเที่ยวนั้นจาก google map เพื่อบันทึกค่าละติจูดและลองติจูดไปยังหน้าถัดไป เพื่อเพิ่มรายละเอียดสถานที่ท่องเที่ยวและเก็บลงฐานข้อมูล mysql
ผู้ใช้งาน >> สามารถตรวจสอบตำแหน่งปัจจุบันของผู้ใช้งานได้ว่าอยู่ตำแหน่งใด โดยจะแสดงตำแหน่งละติจูดและลองติจูดของตำแหน่งนั้น และจะแสดงสถานที่ท่องเที่ยวที่ใกล้เคียงในรัศมี 20 กม.ของผู้ใช้งาน
ในการแนะนำสถานที่ท่องเที่ยวมีการดึงข้อมูลส่วนนั้นมาจากการเพิ่มสถานที่ท่องเที่ยวจากสมาชิกในฐานข้อมูล mysql
จากข้อมูลดังกล่าว >> ไม่ทราบว่า ในการแนะนำสถานที่ท่องเที่ยวในรัศมี 20 กม.จากตำแหน่งปัจจุบันของผู้ใช้งานจะสามารถแนะนำได้อย่างไรและ ไม่ทราบว่าจะนำค่าละติจูดและลองติจูด คำนวณระยะ ได้หรือไม่ ? และสามารถดึงตำแหน่งละติจูดและลองติจูดจากการเพิ่มสถานที่ท่องเที่ยวจากสมาชิก มาแสดงในส่วนของผู้ใช้งานได้หรือไม่ ??
เพื่อความเข้าใจมากยิ่งขึ้น ตัวอย่างเช่น
ผู้ใช้งานตรวจสอบตำแหน่งปัจจุบัน ระบบแสดงค่าละติจูดและลองติจูดของตำแหน่งปัจจุบัน จากนั้น ระบบจะแสดงสถานที่ท่องเที่ยวที่ใกล้เคียงในรัศมี 20 กม. ว่ามีสถานที่ท่องเที่ยวไหนบ้าง โดยในการแสดงนั้น จะต้องดึงข้อมูลจากการเพิ่มสถานที่ท่องเที่ยวโดยสมาชิกจากฐานข้อมูล mysql มาแสดง โดยใช้ค่าละติจูดและลองติจูดเป็นตัวกำหนดตำแหน่ง
รบกวนช่วยพิจารณาปัญหานี้หน่อยนะคะ หรือหากท่านใดมีวิธีที่โอเคกว่านี้ ก็แนะนำได้นะคะ
โค้ดโปรแกรมส่วนของ สมาชิกในการเพิ่มสถานที่ท่องเที่ยว
Code
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form name="form1" method="post" action="map3.php">
<p>
<script src="http://maps.google.com/maps?file=api&v=2&key=ABQIAAAAKaJQ6galA0QmFhNdQzYuwRQnaT__a1y-hZdnJBN4Ggj_4W3wVRTkKlGxp0EJvRTbiAqcn-FCYSTDog"
type="text/javascript"></script>
<script src="js/gmaps.CircleOverlay.js" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
var map;
var geocoder;
function load() {
if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map_canvas"));
geocoder = new GClientGeocoder();
map.addMapType(G_PHYSICAL_MAP);
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.setCenter(new GLatLng(9.104554477670904, 99.33284282684326), 15);
}
}
function initialize() {
GEvent.addListener(map,"click", function(overlay,latlng) {
if (latlng) {
var matchll = /\(([-.\d]*), ([-.\d]*)/.exec( latlng );
if ( matchll ) {
var lat = parseFloat( matchll[1] );
var lng = parseFloat( matchll[2] );
lat = lat.toFixed(6);
lng = lng.toFixed(6);
}
var myHtml = "คุณต้องการเพิ่มเติมรายละเอียดสถานที่ท่องเที่ยวตำแหน่งนี้:<br> <input type='button' onClick='javascript:Addpoint("+lat+","+lng+");' value='บันทึกตำแหน่งสถานที่ท่องเที่ยว'>";
map.openInfoWindow(latlng, myHtml);
}
});
}
function Addpoint(lat,lon){
window.location="map3.php?lat="+lat+"&lng="+lon;
}
//]]>
</script>
</head>
<body onload="load(),initialize()" onunload="GUnload()">
กรุณาระบุตำแหน่งสถานที่ท่องเที่ยวเพื่อบันทึกค่าละติจูดและลองติจูด</p>
<div id="map_canvas" style="width: 550px; height: 330px; font-family: Tahoma, Geneva, sans-serif; color: #00F; font-size: 12px;"></div>
</form>
</body>
</html>[/code]
หลังจากสมาชิกเลือกตำแหน่งสถานที่ท่องเที่ยวแล้วก็จะบันทึกค่า ละติจูดและลองติจูดไปยังหน้าแบบฟอร์มเพื่อบันทึกลงฐานข้อมูล
Code
[code]<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form action="Place_mapsave.php" method="post" enctype="multipart/form-data">
<p>แบบฟอร์มสำหรับเพิ่มเติมรายละเอียดสถานที่ท่องเที่ยว</p>
<table width="639" height="0" border="0" align="center" cellpadding="0" cellspacing="0">
<tr>
<td width="177" height="29" align="right" valign="top">ชื่อสถานที่ท่องเที่ยว</td>
<td width="500" valign="top"><div align="left" ><input type="text" name="Place_name" value= "" size="50" id="Place_name"/>
</div></td></tr>
<tr>
<td height="28" align="right" valign="top">ที่ตั้ง</td>
<td valign="top"><input type="text" name="Place_address" value= "" size="50" id="Place_address"/>
</td></tr>
<tr>
<td height="28" align="right" valign="top">รายละเอียด</td>
<td valign="top"><textarea name="Place_Detail" id="Place_Detail" cols="52" rows="5"></textarea>
</td></tr>
<tr>
<td height="28" align="right" valign="top">รูปภาพ</td>
<td valign="top"><input type="file" name="Place_Pic" id="Place_Pic" >
</td></tr>
<tr>
<td height="28" align="right" valign="top">ละติจูด</td>
<td valign="top"><div align="left">
<input name="lat" type="text" id="lat" value=9.105699 />
</br></div></td></tr>
<tr>
<td height="28" align="right" valign="top">ลองติจูด</td>
<td valign="top"><div align="left">
<input name="lng" type="text" id="lng" value=99.331985 />
</br></div></td></tr>
<tr>
<td height="51" colspan="2" align="center"><div align="center">
<input type="submit" name="button" value="เพิ่มสถานที่ท่องเที่ยว" />
<input type="reset" name="Reset" value="ล้างข้อมูล" /></div></td>
</tr>
</table>
</form>
</body>
</html>
โค้ดโปรแกรมในส่วนของ ผู้ใช้งาน โดยสามารถตรวจสอบตำแหน่งปัจจุบันของผู้ใช้งานได้ โดยแสดงค่าละติจูดและลองติจูด
Code
<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>Untitled Document</title>
</head>
<body>
<form name="form1" method="post" action="">
<p>
<script src="http://maps.googleapis.com/maps/api/js?sensor=false"></script>
<script>
// Integration with google maps
function loadMap(lat, lng) {
var latlng = new google.maps.LatLng(lat, lng);
var settings = {
zoom: 14,
center: latlng,
mapTypeId: google.maps.MapTypeId.ROADMAP
};
var map = new google.maps.Map(document.getElementById('map_canvas'), settings);
var marker = new google.maps.Marker({
position: latlng,
map: map,
title: 'Your Position!'
});
document.getElementById('status').innerHTML = 'ตำแหน่งปัจจุบันของคุณ ';
}
// Initialize geolocation
function initialize() {
if (navigator.geolocation) {
document.getElementById('status').innerHTML = 'Checking...';
navigator.geolocation.getCurrentPosition(
onSuccess,
onError, {
enableHighAccuracy: true,
timeout: 20000,
maximumAge: 120000
});
}
else {
document.getElementById('status').innerHTML = 'Geolocation not supported.';
}
}
// Map position retrieved successfully
function onSuccess(position) {
var data = '';
data += 'latitude: ' + position.coords.latitude + '<br/>';
data += 'longitude: ' + position.coords.longitude + '<br/>';
document.getElementById('data').innerHTML = data;
loadMap(position.coords.latitude, position.coords.longitude);
}
// Error handler
function onError(err) {
var message;
switch (err.code) {
case 0:
message = 'Unknown error: ' + err.message;
break;
case 1:
message = 'You denied permission to retrieve a position.';
break;
case 2:
message = 'The browser was unable to determine a position: ' + error.message;
break;
case 3:
message = 'The browser timed out before retrieving the position.';
break;
}
document.getElementById('status').innerHTML = message;
}
</script>
</head>
<body onload="initialize()">
</p>
<div id="status"></div>
<div id="data"></div>
<div id="map_canvas" style="width: 502px; height: 302px"></div>
</form>
</body>
</html>
รบกวนช่วยแนะนำปัญหาดังกล่าวให้หน่อยนะคะ
ขอบคุณล่วงหน้าสำหรับคำตอบที่ดีนะคะ
และต้องขออภัยด้วยในการตั้งกระทู้ อาจจะดู งงๆ เพราะตั้งกระทู้เป็นครั้งแรกค่ะ อิอิ
Tag : PHP
|
|
|
|
|
|
Date :
2013-07-23 13:23:04 |
By :
none |
View :
1503 |
Reply :
2 |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
เคยเจอคำตอบอยู่ในฟอรั่มนี้เมื่อประมาณเดือนก่อน
|
|
|
|
|
Date :
2013-07-23 13:27:25 |
By :
{Cyberman} |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
ต้องถามว่า navigator.geolocation.getCurrentPosition ได้ลองใช้จริงกับ mobile ดูหรือยังครับ
ว่า มันตรง Position ที่เราอยู่จริง ๆ หรือไม่
เพราะที่ได้ลอง ไม่ตรง จะห่างจากจุดเราอยู่ มาก
ผมก็เลยไปเล่นแบบอื่นดู โดยให้เรียก ใช้ GPS Module ของ Mobile แต่ก็ไม่ค่อยเวิร์คเท่าใหร่ ได้มั่งไม่ได้มั่ง ไม่รุมันเป็นอะไรของมัน
|
|
|
|
|
Date :
2013-07-24 14:05:38 |
By :
deawx |
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
Load balance : Server 02
|