Register Register Member Login Member Login Member Login Forgot Password ??
PHP , ASP , ASP.NET, VB.NET, C#, Java , jQuery , Android , iOS , Windows Phone
 

Registered : 109,037

HOME > PHP > PHP Forum > สอบถามเรื่องการแนะนำสถานที่ท่องเที่ยวในรัศมี 20 กม.จากตำแหน่งปัจจุบันของผู้ใช้งาน โดยอ้างอิงตำแหน่งจาก google map



 

สอบถามเรื่องการแนะนำสถานที่ท่องเที่ยวในรัศมี 20 กม.จากตำแหน่งปัจจุบันของผู้ใช้งาน โดยอ้างอิงตำแหน่งจาก google map

 



Topic : 098142

Guest




เรื่องการแนะนำสถานที่ท่องเที่ยวในรัศมี 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







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2013-07-23 13:23:04 By : none View : 1503 Reply : 2
 

 

No. 1



โพสกระทู้ ( 1,994 )
บทความ ( 10 )



สถานะออฟไลน์
Facebook Blogger

เคยเจอคำตอบอยู่ในฟอรั่มนี้เมื่อประมาณเดือนก่อน






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-23 13:27:25 By : {Cyberman}
 


 

No. 2



โพสกระทู้ ( 5,149 )
บทความ ( 26 )

สมาชิกที่ใส่เสื้อไทยครีเอท Hall of Fame 2012

สถานะออฟไลน์


ต้องถามว่า navigator.geolocation.getCurrentPosition ได้ลองใช้จริงกับ mobile ดูหรือยังครับ
ว่า มันตรง Position ที่เราอยู่จริง ๆ หรือไม่
เพราะที่ได้ลอง ไม่ตรง จะห่างจากจุดเราอยู่ มาก


ผมก็เลยไปเล่นแบบอื่นดู โดยให้เรียก ใช้ GPS Module ของ Mobile แต่ก็ไม่ค่อยเวิร์คเท่าใหร่ ได้มั่งไม่ได้มั่ง ไม่รุมันเป็นอะไรของมัน
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2013-07-24 14:05:38 By : deawx
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเรื่องการแนะนำสถานที่ท่องเที่ยวในรัศมี 20 กม.จากตำแหน่งปัจจุบันของผู้ใช้งาน โดยอ้างอิงตำแหน่งจาก google map
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ FTP| ใส่แถวของตาราง ใส่คอลัมน์ตาราง| ตัวยก ตัวห้อย ตัวพิมพ์ดีด| ใส่โค้ด ใส่การอ้างถึงคำพูด| ใส่ลีสต์
smiley for :lol: smiley for :ken: smiley for :D smiley for :) smiley for ;) smiley for :eek: smiley for :geek: smiley for :roll: smiley for :erm: smiley for :cool: smiley for :blank: smiley for :idea: smiley for :ehh: smiley for :aargh: smiley for :evil:
Insert PHP Code
Insert ASP Code
Insert VB.NET Code Insert C#.NET Code Insert JavaScript Code Insert C#.NET Code
Insert Java Code
Insert Android Code
Insert Objective-C Code
Insert XML Code
Insert SQL Code
Insert Code
เพื่อความเรียบร้อยของข้อความ ควรจัดรูปแบบให้พอดีกับขนาดของหน้าจอ เพื่อง่ายต่อการอ่านและสบายตา และตรวจสอบภาษาไทยให้ถูกต้อง

อัพโหลดแทรกรูปภาพ

Notice

เพื่อความปลอดภัยของเว็บบอร์ด ไม่อนุญาติให้แทรก แท็ก [img]....[/img] โดยการอัพโหลดไฟล์รูปจากที่อื่น เช่นเว็บไซต์ ฟรีอัพโหลดต่าง ๆ
อัพโหลดแทรกรูปภาพ ให้ใช้บริการอัพโหลดไฟล์ของไทยครีเอท และตัดรูปภาพให้พอดีกับสกรีน เพื่อความโหลดเร็วและไฟล์ไม่ถูกลบทิ้ง

   
  เพื่อความปลอดภัยและการตรวจสอบ กระทู้ที่แทรกไฟล์อัพโหลดไฟล์จากที่อื่น อาจจะถูกลบทิ้ง
 
โดย
อีเมล์
บวกค่าให้ถูก
<= ตัวเลขฮินดูอารบิก เช่น 123 (หรือล็อกอินเข้าระบบสมาชิกเพื่อไม่ต้องกรอก)







Exchange: นำเข้าสินค้าจากจีน, Taobao, เฟอร์นิเจอร์, ของพรีเมี่ยม, ร่ม, ปากกา, power bank, แฟลชไดร์ฟ, กระบอกน้ำ

Load balance : Server 02
ThaiCreate.Com Logo
© www.ThaiCreate.Com. 2003-2024 All Rights Reserved.
ไทยครีเอทบริการ จัดทำดูแลแก้ไข Web Application ทุกรูปแบบ (PHP, .Net Application, VB.Net, C#)
[Conditions Privacy Statement] ติดต่อโฆษณา 081-987-6107 อัตราราคา คลิกที่นี่