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 > สอบถามเรื่องการแสดงแผนที่ Google Maps Javascript API ให้เร็วขึ้นค่ะ



 

สอบถามเรื่องการแสดงแผนที่ Google Maps Javascript API ให้เร็วขึ้นค่ะ

 



Topic : 115221



โพสกระทู้ ( 50 )
บทความ ( 0 )



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




ตอนนี้กำลังทำเว็บไซต์ ซึ่งเป็นโปรเจคตัวนึง เกี่ยวกับการแสดงตำแหน่งสถานที่ต่างๆในจังหวัดค่ะ โดยดึงข้อมูลจากฐานข้อมูลเพื่อแสดง marker และมีแสดงข้อมูล info windows โดยการคลิกที่ marker ค่ะ

ปัญหา คือ เมื่อคลิกเข้าเว็บไซต์โหลดแผนที่ขึ้นมา (แผนที่แสดงผล แต่ไม่มี marker) ปรากฎว่าใช้เวลาโหลด marker ประมาณ 15 วินาที ถึงจะแสดงผลออกมาทั้งหมดค่ะ ซึ่งฐานข้อมูลมีแค่ 200 กว่าแถวเอง

รบกวนขอคำแนะนำด้วยค่ะ หรือจะเป็นตัวอย่างโค๊ดก็ได้ ขอบคุณค่ะ



Tag : PHP, MySQL, HTML/CSS, JavaScript, Windows, Web Service







Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2015-03-18 22:21:24 By : naomikijung View : 1427 Reply : 2
 

 

No. 1



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

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

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


ต้องเอามาดูว่าเขียนไว้แบบใหนน่ะครับ พูดมาลอย ๆ มันเดาโค้ดไม่ถูกหรอกครับ แต่ละคนมีวิธีการเขียนไม่เหมือนกัน ปัญหาก็จะไม่เหมือนกัน

ฝากลงโค้ดไว้ จะได้ทดลองให้ครับ






แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-03-19 07:29:55 By : deawx
 


 

No. 2



โพสกระทู้ ( 50 )
บทความ ( 0 )



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


Code (PHP)
<!DOCTYPE html>
<html>
<head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no">
    <meta charset="utf-8">
    <title>
    <? include("title.html"); ?>
</title>
    <style type="text/css">
html { height: 100% }
body { 
	height:100%;
	margin:0;padding:0;
	font-family:tahoma, "Microsoft Sans Serif", sans-serif, Verdana;
	font-size:14px;
}
/* css กำหนดความกว้าง ความสูงของแผนที่ */
#map_canvas { 
	width:1024px;
	height:500px;
	margin:auto;
	margin-top:0px;
}
</style>

<script src="SpryAssets/SpryMenuBar.js" type="text/javascript"></script>
<link href="SpryAssets/SpryMenuBarHorizontal.css" rel="stylesheet" type="text/css" />
</head>

<body>
<table width="1024" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td><? include ("headder.html"); ?></td>
  </tr>
  <tr bgcolor="#9CFF99">
    <td bgcolor="#EDE42F"><? include("top_menu.php"); ?></td>
  </tr>
  <tr bgcolor="#9CFF99">
    <td align="center" bgcolor="#EDE42F"><strong>:ลบข้อมูล:</strong></td>
  </tr>
</table>
<div id="map_canvas"></div>
 
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script> 
<script type="text/javascript">
var map; // กำหนดตัวแปร map ไว้ด้านนอกฟังก์ชัน เพื่อให้สามารถเรียกใช้งาน จากส่วนอื่นได้
var infowindow=[]; // กำหนดตัวแปรสำหรับเก็บตัว popup แสดงรายละเอียดสถานที่
var infowindowTmp; // กำหนดตัวแปรสำหรับเก็บลำดับของ infowindow ที่เปิดล่าสุด
var my_Marker=[]; // กำหนดตัวแปรสำหรับเก็บตัว marker เป็นตัวแปร array
var GGM; // กำหนดตัวแปร GGM ไว้เก็บ google.maps Object จะได้เรียกใช้งานได้ง่ายขึ้น
function initialize() { // ฟังก์ชันแสดงแผนที่
	GGM=new Object(google.maps); // เก็บตัวแปร google.maps Object ไว้ในตัวแปร GGM
	// กำหนดจุดเริ่มต้นของแผนที่
	var my_Latlng  = new GGM.LatLng(18.285877, 99.512790);
	// กำหนด DOM object ที่จะเอาแผนที่ไปแสดง ที่นี้คือ div id=map_canvas
	var my_DivObj=$("#map_canvas")[0]; 
	// กำหนด Option ของแผนที่
	var myOptions = {
		zoom: 8, // กำหนดขนาดการ zoom
		center: my_Latlng , // กำหนดจุดกึ่งกลาง
		mapTypeId:GGM.MapTypeId.HYBRID, // กำหนดรูปแบบแผนที่
		mapTypeControlOptions:{ // การจัดรูปแบบส่วนควบคุมประเภทแผนที่
			position:GGM.ControlPosition.TOP, // จัดตำแหน่ง
			style:GGM.MapTypeControlStyle.DROPDOWN_MENU // จัดรูปแบบ style 
		}
	};
	map = new GGM.Map(my_DivObj,myOptions);// สร้างแผนที่และเก็บตัวแปรไว้ในชื่อ map
	
	var image = {
    url: 'image/point_yellow.png',
	// This marker is 32 pixels wide by 32 pixels tall.
    size: new google.maps.Size(32, 32),
    // The origin for this image is 0,0.
    origin: new google.maps.Point(0,0),
    // The anchor for this image is the base of the flagpole at 0,32.
    anchor: new google.maps.Point(0, 32)
  };
	
	$.ajax({
		url:"genMarker.php", // ใช้ ajax ใน jQuery เรียกใช้ไฟล์ xml 
		dataType: "xml",
		success:function(xml){
			$(xml).find('marker').each(function(i){ // วนลูปดึงค่าข้อมูลมาสร้าง marker  
				var markerID=$(this).find("id").text();// นำค่าต่างๆ มาเก็บไว้ในตัวแปรไว้ใช้งาน    
				var markerName=$(this).find("name").text();// นำค่าต่างๆ มาเก็บไว้ในตัวแปรไว้ใช้งาน    
				var markerLat=$(this).find("latitude").text();// นำค่าต่างๆ มาเก็บไว้ในตัวแปรไว้ใช้งาน    
				var markerLng=$(this).find("longitude").text();	// นำค่าต่างๆ มาเก็บไว้ในตัวแปรไว้ใช้งาน    			
				var markerDataID=$(this).find("dataid").text(); // นำค่าต่างๆ มาเก็บไว้ในตัวแปรไว้ใช้งาน
				
				var markerLatLng=new GGM.LatLng(markerLat,markerLng);
				my_Marker[i] = new GGM.Marker({ // สร้างตัว marker เป็นแบบ array
					position:markerLatLng,  // กำหนดไว้ที่เดียวกับจุดกึ่งกลาง
					map: map, // กำหนดว่า marker นี้ใช้กับแผนที่ชื่อ instance ว่า map
					icon: image,
					title:markerName // แสดง title เมื่อเอาเมาส์มาอยู่เหนือ
				});
				//  กรณีตัวอย่าง ดึง title ของตัว marker มาแสดง
				//infowindow[i] = new GGM.InfoWindow({// สร้าง infowindow ของแต่ละ marker เป็นแบบ array
					//content: my_Marker[i].getTitle(), // ดึง title ในตัว marker มาแสดงใน infowindow
				//});
//				// 	กรณีนำไปประยุกต์ ดึงข้อมูลจากฐานข้อมูลมาแสดง
				infowindow[i] = new GGM.InfoWindow({   
					content:$.ajax({   
						url:'placeDetail.php',//ใช้ ajax ใน jQuery ดึงข้อมูล   
						//data:'placeID='+markerID,// ส่งค่าตัวแปร ไปดึงข้อมูลจากฐานข้อมูล
						data:"placeID="+markerDataID,// ส่งค่าตัวแปร ไปดึงข้อมูลจากฐานข้อมูล 
						async:false   
					}).responseText   
				});				
				
				GGM.event.addListener(my_Marker[i], 'click', function(){ // เมื่อคลิกตัว marker แต่ละตัว
					if(infowindowTmp){ // ให้ตรวจสอบว่ามี infowindow ตัวไหนเปิดอยู่หรือไม่
						infowindow[infowindowTmp].close();  // ถ้ามีให้ปิด infowindow ที่เปิดอยู่
					}
					infowindow[i].open(map,my_Marker[i]); // แสดง infowindow ของตัว marker ที่คลิก
					infowindowTmp=i; // เก็บ infowindow ที่เปิดไว้อ้างอิงใช้งาน
				});			
			});
		}	
	});		

}

$(function(){
	// โหลด สคริป google map api เมื่อเว็บโหลดเรียบร้อยแล้ว
	// ค่าตัวแปร ที่ส่งไปในไฟล์ google map api
	// v=3.2&sensor=false&language=th&callback=initialize
	//	v เวอร์ชัน่ 3.2
	//	sensor กำหนดให้สามารถแสดงตำแหน่งทำเปิดแผนที่อยู่ได้ เหมาะสำหรับมือถือ ปกติใช้ false
	//	language ภาษา th ,en เป็นต้น
	//	callback ให้เรียกใช้ฟังก์ชันแสดง แผนที่ initialize
	$("<script/>", {
	  "type": "text/javascript",
	  src: "http://maps.google.com/maps/api/js?v=3.2&sensor=false&language=th&callback=initialize"
	}).appendTo("body");	
});
</script>

<table width="1024" border="0" align="center" cellpadding="0" cellspacing="0">
  <tr>
    <td align="center" bgcolor="#E5E523"><? include ("footer.php"); ?></td>
  </tr>
</table>
<!--Code Menu-->
<script type="text/javascript">
var MenuBar1 = new Spry.Widget.MenuBar("MenuBar1", {imgDown:"SpryAssets/SpryMenuBarDownHover.gif", imgRight:"SpryAssets/SpryMenuBarRightHover.gif"});
</script>
</body>
</html>



genMarker.php
Code (PHP)
<?php
header("Content-type:text/xml; charset=UTF-8");              
header("Cache-Control: no-store, no-cache, must-revalidate");             
header("Cache-Control: post-check=0, pre-check=0", false);   
include("conndb.php");
echo '<?xml version="1.0" encoding="utf-8"?>';
?>
<markers>
<?php
$q="SELECT id_reccord , id_vill_no , vill_no , vill_name , lat , longs FROM tb_point_vill WHERE 1 ORDER BY abs(id_vill_no) ASC ";
$qr=mysql_query($q);
while($rs=mysql_fetch_array($qr)){
	
	$sub_id_vill_no = substr($rs['id_vill_no'],0,6);
	
	$rs_tambon = mysql_query("select code_tambon , name_tambon , code_amphoe from tambon where code_tambon = '".$sub_id_vill_no."'");
	$arr_tambon = mysql_fetch_assoc($rs_tambon);
	
	$rs_amphoe = mysql_query("select code_amphoe , name_amphoe from amphoe where code_amphoe = '".$arr_tambon['code_amphoe']."'");
	$arr_amphoe = mysql_fetch_assoc($rs_amphoe);
?>
	<marker id="<?=$rs['id_reccord']?>">
        <name><? echo "หมู่ที่ ".$rs['vill_no']." ".$rs['vill_name']." ".$arr_tambon['name_tambon']." ".$arr_amphoe['name_amphoe']." ...";?></name>
        <latitude><?=$rs['lat']?></latitude>
        <longitude><?=$rs['longs']?></longitude>
        <dataid><?=$rs["id_vill_no"]?></dataid>
    </marker>
<?php } ?>
</markers>

แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2015-03-19 10:46:39 By : naomikijung
 

   

ค้นหาข้อมูล


   
 

แสดงความคิดเห็น
Re : สอบถามเรื่องการแสดงแผนที่ Google Maps Javascript API ให้เร็วขึ้นค่ะ
 
 
รายละเอียด
 
ตัวหนา ตัวเอียง ตัวขีดเส้นใต้ ตัวมีขีดกลาง| ตัวเรืองแสง ตัวมีเงา ตัวอักษรวิ่ง| จัดย่อหน้าอิสระ จัดย่อหน้าชิดซ้าย จัดย่อหน้ากึ่งกลาง จัดย่อหน้าชิดขวา| เส้นขวาง| ขนาดตัวอักษร แบบตัวอักษร
ใส่แฟลช ใส่รูป ใส่ไฮเปอร์ลิ้งค์ ใส่อีเมล์ ใส่ลิ้งค์ 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 00
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 อัตราราคา คลิกที่นี่