PHP Ionic Angularjs Phonegap AJAX Javascript CSS MySQL jQuery Forum

แสดง google map แบบ popup message ด้วย jquery

19 March 2014 By


เนื้อหานี้ เป็นการดัดแปลง และประยุกต์จากเนื้อหา 2 บทความด้านล่าง
 
สร้าง popup message ด้วย jquery อย่างง่าย 
http://www.ninenik.com/content.php?arti_id=464 via @ninenik
 
แสดงแผนที่ 2 แผนที่ ด้วย google map ใน jqueryui tab 
http://www.ninenik.com/content.php?arti_id=486 via @ninenik
 
รายละเอียด อ่านได้ในแต่ละบนความ ในที่นี้ แค่เป็นการ นำ jqueryui tab ที่มีแผนที่
อยู่แล้ว ไปไว้ในส่วนของ popup message 
 
ตัวอย่าง

test test
test test
test test
test test
คลิกที่นี้ เพื่อแสดงแผนที่ แบบ popup
test test
test test
test test
test test
test test
test test
X

รายละเอียดย่อยหัวข้อแท็บที่ 1

Latitude
Longitude
Zoom

 
โค้ดทั้งหมด

<!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></title>
<script src="//ajax.googleapis.com/ajax/libs/jquery/1.8.3/jquery.min.js"></script>
<?php    
$jquery_ui_v="1.8.5";    
$theme=array(    
    "0"=>"base",    
    "1"=>"black-tie",    
    "2"=>"blitzer",    
    "3"=>"cupertino",    
    "4"=>"dark-hive",    
    "5"=>"dot-luv",    
    "6"=>"eggplant",    
    "7"=>"excite-bike",    
    "8"=>"flick",    
    "9"=>"hot-sneaks",    
    "10"=>"humanity",    
    "11"=>"le-frog",    
    "12"=>"mint-choc",    
    "13"=>"overcast",    
    "14"=>"pepper-grinder",    
    "15"=>"redmond",    
    "16"=>"smoothness",    
    "17"=>"south-street",    
    "18"=>"start",    
    "19"=>"sunny",    
    "20"=>"swanky-purse",    
    "21"=>"trontastic",    
    "22"=>"ui-darkness",    
    "23"=>"ui-lightness",    
    "24"=>"vader"    
);    
$jquery_ui_theme=$theme[14];    
?>    
<link type="text/css" rel="stylesheet" href="http://ajax.googleapis.com/ajax/libs/jqueryui/<?=$jquery_ui_v?>/themes/<?=$jquery_ui_theme?>/jquery-ui.css" />    
<script src="//ajax.googleapis.com/ajax/libs/jqueryui/<?=$jquery_ui_v?>/jquery-ui.min.js"></script>
<style type="text/css">    
html,body{  
    padding:0px;  
    margin:0px;  
    height: 100%;  	  	
}  
body{
	font-family:Tahoma, Geneva, sans-serif;
	font-size:12px;	
    width: 100%;     	
}
div.test_demo_main{
	margin:auto;
	width:75%;	
}
/* ปรับขนาดตัวอักษรของข้อความใน tabs   
สามารถปรับเปลี่ยน รายละเอียดอื่นๆ เพิ่มเติมเกี่ยวกับ tabs  
*/    
.ui-tabs{    
    font-family:tahoma;    
    font-size:11px;    
}    

div#map_canvas{  
    margin:auto;  
    width:550px;  
    height:350px;  
    overflow:hidden;  
}  
div#map_canvas2{  
    margin:auto;  
    width:550px;  
    height:350px;  
    overflow:hidden;  
}  
#overlay {     
    background:#000;  
    width:100%;  
    height:100%;  
    z-index:80000;  
    top:0px;  
    left:0px;  
    position:fixed;  
    opacity: .5;     
    filter: alpha(opacity=50);     
    -moz-opacity: .5;    
    display:none;  
}     
.msg_show{  
    position:fixed;  
    z-index:90000;  
    margin:auto;  
    width:600px;  
    height:550px;  
    top: 20%;  
    left: 50%;  
    margin-top: -100px;  
    margin-left: -250px;  
    text-align:center;  
    display:none;  
}  
.msg_data{  
	margin-top: 10px;
	margin-right: 10px;
}
.close_popup{
	color: #FFF;
	position: absolute;
	display: block;
	width: 25px;
	height: 25px;
	background-color: #000;
	z-index: 80001;
	text-decoration: none;
	border: 2px solid #FFF;
	-webkit-border-radius: 100%;
	-moz-border-radius: 100%;
	border-radius: 100%;
	line-height: 23px;
	font-weight: bold;
	font-size: 16px;
	right: 0px;
}
</style>    

</head>

<body>




<div class="test_demo_main">


<div style="margin:auto;width:95%;">  
test test<br />test test<br />  
test test<br />test test<br />  
<a class="show_box" href="javascript:void(0);">คลิกที่นี้ เพื่อแสดงแผนที่ แบบ popup</a>  
<!--เนื้อหาภายในเว็บ-->  <br />  
test test<br />test test<br />  
test test<br />test test<br />  
test test<br />test test<br />  
</div>  


<div class="msg_show">  
<a class="show_box close_popup" href="javascript:void(0);">X</a>  
<div class="msg_data">  


<div id="tabs">  
    <ul>  
        <li><a href="#tabs-1">หัวข้อแท็บที่ 1</a></li>  
        <li><a href="#tabs-2">หัวข้อแท็บที่ 2</a></li>  
        <li><a href="#tabs-3">หัวข้อแท็บที่ 3</a></li>  
    </ul>  
    <div id="tabs-1">  
        <p>รายละเอียดย่อยหัวข้อแท็บที่ 1</p>  
    </div>  
    <div id="tabs-2">  
        <p>
        
        <div id="map_canvas2"></div>  
        <div id="showDD" style="margin:auto;padding-top:5px;width:550px;">    
        <form id="form_get_detailMap" name="form_get_detailMap" method="post" action="">    
        Latitude    
        <input name="lat_value" type="text" id="lat_value" value="0" />  <br />  
        Longitude    
        <input name="lon_value" type="text" id="lon_value" value="0" />  <br />  
        Zoom    
        <input name="zoom_value" type="text" id="zoom_value" value="0" size="5" />    
        <br />  
        <input type="submit" name="button" id="button" value="บันทึก" />    
        </form>    
        </div>         
        
        </p>  
    </div>  
    <div id="tabs-3">  
        <p>
        
  <div id="map_canvas"></div>  

     
        
        </p>  
    </div>  
</div>  


</div>  
</div>  

  


</div>


<script type="text/javascript">  
$(function(){  

    $(".show_box").click(function(){  
        $("#overlay").fadeToggle("",function(){ // แสดงส่วนของ overlay  
            $(".msg_show").slideToggle("",function(){ // แสดงส่วนของ เนื้อหา popup  
                if($(this).css("display")=="block"){        // ถ้าเป็นกรณีแสดงข้อมูล   
				initialize();
                //  หากต้องการดึงข้อมูลมาแสดง แบบ ajax  
                //  สามารถดัดแปลงจากโค้ดนี้ได้        
                //  $(".msg_data").load("data.php");      
                //      หรือ  
                //  $.post("data.php",{},function(data){  
                //      $(".msg_data").html(data);  
                //  });  
                }  
            });  
        });  
    });  
	

    // แทรกโค้ต jquery  
    // กำหนดแบบทั่วไป  
    $("#tabs").tabs();   
	$("a[href='#tabs-2']").click(function(){  
		initialize2();  
	});  	
	$("a[href='#tabs-3']").click(function(){  
		initialize();  
	});  			

});  
</script>  
<script type="text/javascript">  
var map; // กำหนดตัวแปร map ไว้ด้านนอกฟังก์ชัน เพื่อให้สามารถเรียกใช้งาน จากส่วนอื่นได้  
var GGM; // กำหนดตัวแปร GGM ไว้เก็บ google.maps Object จะได้เรียกใช้งานได้ง่ายขึ้น  
// ฟังก์ชันสำหรับสร้างแผนที่ ใน tab ที่ 1 ใช้ชื่อว่า initialize()
function initialize() { // ฟังก์ชันแสดงแผนที่  
    GGM=new Object(google.maps); // เก็บตัวแปร google.maps Object ไว้ในตัวแปร GGM  
    // กำหนดจุดเริ่มต้นของแผนที่  
    var my_Latlng  = new GGM.LatLng(13.761728449950002,100.6527900695800);  
    var my_mapTypeId=GGM.MapTypeId.ROADMAP; // กำหนดรูปแบบแผนที่ที่แสดง  
    // กำหนด DOM object ที่จะเอาแผนที่ไปแสดง ที่นี้คือ div id=map_canvas  
    var my_DivObj=$("#map_canvas")[0];   
    // กำหนด Option ของแผนที่  
    var myOptions = {  
        zoom: 13, // กำหนดขนาดการ zoom  
        center: my_Latlng , // กำหนดจุดกึ่งกลาง  
        mapTypeId:my_mapTypeId // กำหนดรูปแบบแผนที่  
    };  
    map = new GGM.Map(my_DivObj,myOptions);// สร้างแผนที่และเก็บตัวแปรไว้ในชื่อ map  
  
  
  
    // เรียกใช้คุณสมบัติ ระบุตำแหน่ง ของ html 5 ถ้ามี  
    if(navigator.geolocation){  
            navigator.geolocation.getCurrentPosition(function(position){  
                var pos = new GGM.LatLng(position.coords.latitude,position.coords.longitude);  
                var infowindow = new GGM.InfoWindow({  
                    map: map,  
                    position: pos,  
                    content: "คุณอยู่ที่นี่."  
                });  
                  
                var my_Point = infowindow.getPosition();  // หาตำแหน่งของตัว marker เมื่อกดลากแล้วปล่อย  
                map.panTo(my_Point);  // ให้แผนที่แสดงไปที่ตัว marker              
                map.setCenter(pos);  
            },function() {  
                // คำสั่งทำงาน ถ้า ระบบระบุตำแหน่ง geolocation ผิดพลาด หรือไม่ทำงาน  
            });  
    }else{  
         // คำสั่งทำงาน ถ้า บราวเซอร์ ไม่สนับสนุน ระบุตำแหน่ง  
    }  

}  

// ฟังก์ชันสำหรับสร้างแผนที่ ใน tab ที่ 2 ใช้ชื่อว่า initialize2()
function initialize2() { // ฟังก์ชันแสดงแผนที่  
    GGM=new Object(google.maps); // เก็บตัวแปร google.maps Object ไว้ในตัวแปร GGM  
    // กำหนดจุดเริ่มต้นของแผนที่  
    var my_Latlng  = new GGM.LatLng(13.761728449950002,100.6527900695800);  
    var my_mapTypeId=GGM.MapTypeId.ROADMAP; // กำหนดรูปแบบแผนที่ที่แสดง  
    // กำหนด DOM object ที่จะเอาแผนที่ไปแสดง ที่นี้คือ div id=map_canvas  
    var my_DivObj=$("#map_canvas2")[0];   
    // กำหนด Option ของแผนที่  
    var myOptions = {  
        zoom: 13, // กำหนดขนาดการ zoom  
        center: my_Latlng , // กำหนดจุดกึ่งกลาง  
        mapTypeId:my_mapTypeId // กำหนดรูปแบบแผนที่  
    };  
    map = new GGM.Map(my_DivObj,myOptions);// สร้างแผนที่และเก็บตัวแปรไว้ในชื่อ map  
      
    var my_Marker = new GGM.Marker({ // สร้างตัว marker  
        position: my_Latlng,  // กำหนดไว้ที่เดียวกับจุดกึ่งกลาง  
        map: map, // กำหนดว่า marker นี้ใช้กับแผนที่ชื่อ instance ว่า map  
        draggable:true, // กำหนดให้สามารถลากตัว marker นี้ได้  
        title:"คลิกลากเพื่อหาตำแหน่งจุดที่ต้องการ!" // แสดง title เมื่อเอาเมาส์มาอยู่เหนือ  
    });  
      
    // กำหนด event ให้กับตัว marker เมื่อสิ้นสุดการลากตัว marker ให้ทำงานอะไร  
    GGM.event.addListener(my_Marker, "dragend", function() {  
        var my_Point = my_Marker.getPosition();  // หาตำแหน่งของตัว marker เมื่อกดลากแล้วปล่อย  
        map.panTo(my_Point);  // ให้แผนที่แสดงไปที่ตัว marker         
        $("#lat_value").val(my_Point.lat());  // เอาค่า latitude ตัว marker แสดงใน textbox id=lat_value  
        $("#lon_value").val(my_Point.lng()); // เอาค่า longitude ตัว marker แสดงใน textbox id=lon_value   
        $("#zoom_value").val(map.getZoom()); // เอาขนาด zoom ของแผนที่แสดงใน textbox id=zoom_value  
    });       
  
    // กำหนด event ให้กับตัวแผนที่ เมื่อมีการเปลี่ยนแปลงการ zoom  
    GGM.event.addListener(map, "zoom_changed", function() {  
        $("#zoom_value").val(map.getZoom()); // เอาขนาด zoom ของแผนที่แสดงใน textbox id=zoom_value    
    });  
  
}  
$(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>    
<div id="overlay"></div>   
</body>
</html>
 
 

Tags:: jquery google map popup





URL สำหรับอ้างอิง