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,038

HOME > Client Script Forum > ช่วยอธิบายโค้ดนี้หน่อยนะคะ คืออยู่ในงานที่ต้องแก้แล้วไม่เข้าใจเลยค่ะ


[PHP] ช่วยอธิบายโค้ดนี้หน่อยนะคะ คืออยู่ในงานที่ต้องแก้แล้วไม่เข้าใจเลยค่ะ

 
Topic : 058284



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



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



Code (JavaScript)
001.<script type="text/javascript">
002.//<![CDATA[
003. 
004. 
005. 
006. 
007.    var map;
008.    var container;
009.    var zoom = 6;
010.    <%=this.CenterPoint %>
011.    //var centerPoint = new GLatLng(12.765599, 100.957053);
012.    var icons = Array();
013.    var baseMarker;
014. 
015.    var myPoints = Array(); // Array of GLatLng objects
016.    var myPointsTemp = Array(); // Array of GLatLng objects
017. 
018. 
019.    function load() {
020.        if (GBrowserIsCompatible()) {
021.            container = document.getElementById("mapDiv");
022.            map = new GMap2(container, { draggableCursor: "crosshair" });
023. 
024.            map.setCenter(centerPoint, zoom);
025. 
026.            map.addControl(new GScaleControl());
027.            map.addControl(new GLargeMapControl());
028.            map.addControl(new GMapTypeControl());
029. 
030.            map.enableScrollWheelZoom();
031. 
032.            var pos = new GControlPosition(G_ANCHOR_BOTTOM_LEFT, new GSize(0, -80));
033.            map.addControl(new MStatusControl({ position: pos }));
034. 
035.            // Define the base
036.           baseMarker = new GMarker(centerPoint, { draggable: true });
037.          //<%=this.BaseMarker %>
038.            addMarkers();
039. 
040.        }
041.    }
042. 
043. 
044.    function addMarkers() {
045.        myPoints = Array(); // Array of GLatLng objects
046.        map.clearOverlays();
047.        map.addOverlay(baseMarker)
048. 
049.        var bounds = map.getBounds();
050.        <%=MyPlace%>
051.             
052.        createIcons();
053. 
054.        myPointsTemp = Array();
055.        for (var n = 0; n < myPoints.length; n++) {
056.            myPointsTemp.push(myPoints[n]);
057.        }
058.        plotMarkers();
059.    }
060.     
061. 
062.    function plotMarkers() {
063.        var p = myPointsTemp.shift();
064.        var marker = new GMarker(p, { icon: icons.shift() })
065.        GEvent.addListener(marker, 'click', function () {
066.            var html = 'Distance to base: ' + (marker.getLatLng().distanceFrom(baseMarker.getLatLng()) / 1609).toFixed(2) + ' Miles';
067.            marker.openInfoWindowHtml(html)
068.        });
069.        map.addOverlay(marker)
070.        if (myPointsTemp.length) {
071.            window.setTimeout("plotMarkers()", 10);
072.        }
073. 
074.    }
075.    this.distanceArray_Count=0;
076.    this.distanceArray=new Array();
077. 
078.    // Magic function ;-)
079.    function compareDistance(LatLonA, LatLonB) {
080.        var d=baseMarker.getLatLng().distanceFrom(LatLonA) - baseMarker.getLatLng().distanceFrom(LatLonB);
081.       // this.distanceArray[ this.distanceArray_Count++]=d;
082.        return d;
083.    }
084. 
085. 
086.    function sort() {
087.        directionsPanel = document.getElementById("route");
088.        //alert(directionsPanel);
089. 
090.        myPoints.sort(compareDistance);
091.        //alert(this.distanceArray_Count);
092.        var latlonDistance='';
093.          var latlon='';
094.        for (var n = 0; n < myPoints.length; n++) {
095.            if(n+1<=myPoints.length-1){
096.                 
097.                var lat1=myPoints[n].y;
098.                var lon1=myPoints[n].x;
099.                var lat2=myPoints[n+1].y;
100.                var lon2=myPoints[n+1].x;
101. 
102.                var R = 6371; // km
103.                var dLat = (lat2-lat1).toRad();
104.                var dLon = (lon2-lon1).toRad();
105.                var a = Math.sin(dLat/2) * Math.sin(dLat/2) +       
106.                        Math.cos(lat1.toRad()) * Math.cos(lat2.toRad()) *        
107.                        Math.sin(dLon/2) * Math.sin(dLon/2);
108.                var c = 2 * Math.atan2(Math.sqrt(a), Math.sqrt(1-a));
109.                var d = R * c;
110.               
111.                this.distanceArray[ this.distanceArray_Count++]=d;
112.                latlonDistance+=','+d;
113.                 
114.            }
115.            latlon+=','+myPoints[n].y+"-"+myPoints[n].x;
116.        }
117.        cbpCalculateTime.PerformCallback(latlonDistance+'/'+latlon);
118. 
119.        map.clearOverlays();
120.        map.addOverlay(baseMarker)
121. 
122.        directions = new GDirections(map, directionsPanel);
123.        //alert(directions);
124.        createIcons();
125.        myPointsTemp = Array();
126.        var fromTo = '';
127.        for (var n = 0; n < myPoints.length; n++) {
128.            myPointsTemp.push(myPoints[n]);
129.            //alert(myPoints[n].lat.value);
130. 
131.            if (n == 0) {
132.                fromTo = 'from: ' + myPoints[n].y + ', ' + myPoints[n].x + ' to: ' + myPoints[n + 1].y + ', ' + myPoints[n + 1].x + ' ';
133.                //alert(fromTo);
134. 
135.            } else if (n + 1 <= myPoints.length - 1) {
136.                fromTo += ' to: ' + myPoints[n + 1].y + ', ' + myPoints[n + 1].x + ' ';
137. 
138.            }
139.        }
140.        directions.load(fromTo, { locale: 'th' });
141.        //directions.load("from: 14.068, 100.6009 to: 13.8152, 100.5606 ", { locale: 'th' });
142. 
143. 
144. 
145.        //plotMarkers();
146.    }
147. 
148. 
149.    createIcons = function () {
150.        var baseIcon = new GIcon();
151.        baseIcon.iconSize = new GSize(20, 34);
152.        baseIcon.iconAnchor = new GPoint(10, 34);
153.        baseIcon.infoWindowAnchor = new GPoint(10, 0);
154.        icons = Array();
155. 
156.        for (var n = 65; n < 91; n++) {
157.            var icon = (new GIcon(baseIcon, 'http://www.google.com/intl/en_ALL/mapfiles/marker_green' + String.fromCharCode(n) + '.png', null, ""));
158.            icons.push(icon);
159.        }
160. 
161.    }
162. 
163.    function unload() {
164.        GUnload();
165.    }
166.  
167.  
168.  
169.//]]>
170.  
171.</script>




Tag : JavaScript

Move To Hilight (Stock) 
Send To Friend.Bookmark.
Date : 2011-04-04 20:27:54 By : หมูแดง View : 1498 Reply : 2
 

 

No. 1



โพสกระทู้ ( 74,059 )
บทความ ( 838 )

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

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

น่าจะเป็น Code เกี่ยวกับ Google Map ครับ ว่าแต่จะให้ช่วยตรงไหนครับ
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-04-05 10:46:48 By : webmaster
 

 

No. 2



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



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


ไม่มีใครช่วยอธิบายเลย T^T
แสดงความคิดเห็นโดยอ้างถึง ความคิดเห็นนี้
Date : 2011-04-05 11:03:59 By : mm
 

   

ค้นหาข้อมูล


   
 

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





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