ช่วยดูเรื่อง marker หน่อยครับ

ถาม-ตอบ แนะนำไอเดียว โค้ดตัวอย่าง แนวทาง วิธีแก้ปัญหา ช่วยดูเรื่อง marker หน่อยครับ

ช่วยดูเรื่อง marker หน่อยครับ
คือพอผมAddพิกัดใหม่ลงในDbแล้ว marker ปักอันใหม่แล้ว แต่ของเก่ามันไม่ลบอะครับ 
<!DOCTYPE html >
  <head>
    <meta name="viewport" content="initial-scale=1.0, user-scalable=no" />
  <meta http-equiv="content-type" content="text/html; charset=UTF-8"/>
    <title>PHP/MySQL & Google Maps Example</title>
    <script type="text/javascript" src="https://maps.googleapis.com/maps/api/js"></script>
    <script type="text/javascript">
    //<![CDATA[

   var map, infoWindow, intervalId;

var customIcons = {
    restaurant: {
        icon: 'http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_blue.png'
    },
    bar: {
        icon: 'http://maps.gstatic.com/mapfiles/ridefinder-images/mm_20_red.png'
    }
};

function load() {
    map = new google.maps.Map(document.getElementById("map"), {
        center: new google.maps.LatLng(19.02, 99.89),
        zoom: 13,
        mapTypeId: 'roadmap'
    });

    infoWindow = new google.maps.InfoWindow;

    // Trigger downloadUrl at an interval
    intervalId = setInterval(triggerDownload, 2000);
}

function bindInfoWindow(marker, map, infoWindow, html) {
    google.maps.event.addListener(marker, 'click', function () {
        infoWindow.setContent(html);
        infoWindow.open(map, marker);
    });
}

function triggerDownload() {
    // Change this depending on the name of your PHP file
    downloadUrl("getlatlng.php", function (data) {
        var xml = data.responseXML;
        var markers = xml.documentElement.getElementsByTagName("marker");
        for (var i = 0; i < markers.length; i++) {
            var name = markers[i].getAttribute("name");
            var address = markers[i].getAttribute("address");
            var type = markers[i].getAttribute("type");
            var point = new google.maps.LatLng(
            parseFloat(markers[i].getAttribute("lat")),
            parseFloat(markers[i].getAttribute("lng")));
            var html = "<b>" + name + "</b> <br/>" + address + "<br/>" + point;
            var icon = customIcons[type] || {};
            var marker = new google.maps.Marker({
                map: map,
                position: point,
                icon: icon.icon
            });
            bindInfoWindow(marker, map, infoWindow, html);
        }
    });
}

function downloadUrl(url, callback) {
    var request = window.ActiveXObject ? new ActiveXObject('Microsoft.XMLHTTP') : new XMLHttpRequest;

    request.onreadystatechange = function () {
        if (request.readyState == 4) {
            request.onreadystatechange = doNothing;
            callback(request, request.status);
        }
    };

    request.open('GET', url, true);
    request.send(null);
}

function doNothing() {}

    //]]>

  </script>

  </head>

  <body onload="load()">
  <div id="map" style="width: 700px; height: 500px"></div>
  </body>

</html>


Benjamin Jengjumrus 125.24.152.xxx 12-01-2016 15:15:48

คำแนะนำ และการใช้งาน

สมาชิก กรุณา ล็อกอินเข้าระบบ เพื่อตั้งคำถามใหม่ หรือ ตอบคำถาม สมาชิกใหม่ สมัครสมาชิกได้ที่ สมัครสมาชิก


  • ถาม-ตอบ กรุณา ล็อกอินเข้าระบบ
  • เปลี่ยน


    ( หรือ เข้าใช้งานผ่าน Social Login )

 ความคิดเห็นที่ 1

แบบนี้อะครับ คือหมุดเก่ามันไม่ยอมลบ 


Benjamin Jengjumrus 125.24.152.xxx 12-01-2016 15:17
 ความคิดเห็นที่ 2
น่าจะต้องใส่คำสั่งล้างค่า marker ออกจากแผนที่ก่อน โหลดข้อมูลใหม่

marker.setMap(null)
 
หรือถ้าเป็น array น่าจะใช้แบบนี้
 
for(var i = 0; i < marker.length; i++) {  
     marker[i].setMap(null);  
}  
 
แทรกเข้าไปในฟังก์ชั่น 

triggerDownload  ก่อนดึงข้อมูลใหม่
 
ลองดูเนื้อหาจากบทความต่อไปนี้เป้นแนวทาง
 


ninenik 183.88.79.xxx 12-01-2016
 ความคิดเห็นที่ 3
ผมลองเอา arrayไปใช้ กลายเป็นว่า แมพไม่มีหมุดปักเลย T_T


Benjamin Jengjumrus 125.24.152.xxx 12-01-2016 16:34
 ความคิดเห็นที่ 4
ลองประมาณนี้ดู

var marker = [];
function triggerDownload() {  
    for(var i = 0; i < marker.length; i++) {    
            marker[i].setMap(null);    
    }    
    // Change this depending on the name of your PHP file  
    downloadUrl("getlatlng.php", function (data) {  
        var xml = data.responseXML;  
        var markers = xml.documentElement.getElementsByTagName("marker");  
        for (var i = 0; i < markers.length; i++) {  
            var name = markers[i].getAttribute("name");  
            var address = markers[i].getAttribute("address");  
            var type = markers[i].getAttribute("type");  
            var point = new google.maps.LatLng(  
            parseFloat(markers[i].getAttribute("lat")),  
            parseFloat(markers[i].getAttribute("lng")));  
            var html = "<b>" + name + "</b> <br/>" + address + "<br/>" + point;  
            var icon = customIcons[type] || {};  
            marker[i] = new google.maps.Marker({  
                map: map,  
                position: point,  
                icon: icon.icon  
            });  
            bindInfoWindow(marker[i], map, infoWindow, html);  
        }  
    });  
}  


ninenik 183.88.79.xxx 12-01-2016
 ความคิดเห็นที่ 5
โอ้วววววววววว กราบขอบคุณมากครับบบบบบบบบบบบบบบบบบบบบ  งมอยู่ตั้งเป็นวัน


Benjamin Jengjumrus 125.24.152.xxx 12-01-2016 17:20
1






เว็บไซต์ของเราให้บริการเนื้อหาบทความสำหรับนักพัฒนา โดยพึ่งพารายได้เล็กน้อยจากการแสดงโฆษณา โปรดสนับสนุนเว็บไซต์ของเราด้วยการปิดการใช้งานตัวปิดกั้นโฆษณา (Disable Ads Blocker) ขอบคุณครับ