JS:如何制作动态的谷歌地图折线



我正在制作谷歌地图,需要显示:一个 KML(平面图(折线,应从 GET 响应中获取其坐标,每 5 秒一次。我希望折线使用来自 RESTful API 的新坐标更新自身。这是代码 [更新]:

        var FlightPath1 = []
            $(document).ready(function() {
            var BASE_URL = "https://its.navizon.com/api/v1/sites/"  //Do not change this
            SITE_ID = "1001"  // Your site ID here
            MAC_add = "00:1E:8F:92:D0:56"  //Mac address of the device to track
            USERNAME = "demo@navizon.com"  // Your username
            PASSWORD = ""  // Your password
            var Path1=new google.maps.Polyline({
                path:FlightPath1,
                strokeColor:"#F020FF",
                strokeOpacity:0.8,
                strokeWeight:2
                });
// Send the request
            jQuery.support.cors = true;   // Enable cross-site scripting
function makeCall() {
    $.ajax({
        type: "GET",
        url: BASE_URL + SITE_ID + "/stations/" + MAC_add + "/",
        beforeSend: function(jqXHR) {
        jqXHR.setRequestHeader("Authorization", "Basic " + Base64.encode(USERNAME + ":" + PASSWORD));
        },
        success: function(jimmi) {
            // Output the results
            if (typeof jimmi === "string") {
                jimmi = JSON.parse(jimmi);
            }
            //Display the results
                FlightPath1.push("new google.maps.LatLng(" + jimmi.loc.lat + "," + jimmi.loc.lng + "),");
                var mapOptions = {
                                    zoom: 19,
                                    center: new google.maps.LatLng(jimmi.loc.lat,jimmi.loc.lng),
                                    mapTypeId: google.maps.MapTypeId.ROADMAP
                                };
                                map = new google.maps.Map(document.getElementById('map-canvas'),
                                mapOptions);
                                var SanDiegoKML = new google.maps.KmlLayer({
                                url: 'https://s3.amazonaws.com/navizon.its.fp/1001/05w0kyw829_a.kml'
                                });
                                SanDiegoKML.setMap(map);
                                google.maps.event.addDomListener(window, 'load', jimmi);
        },
        error: function(jqXHR, textStatus, errorThrown) {
            alert('Error');
        }
    });
    window.setTimeout(makeCall, 5000); //run the script each 5000 milliseconds
}
makeCall();
})

但我什么也没发生。我也没有收到任何错误。有人可以帮助我吗?谢谢。。

两个问题:

  1. 必要的var,Path1是内部的和私有的initialize(),因此超出了ajax成功函数的范围,这是一个完全不同的范围。

  2. ajax 成功函数除了将从响应派生的字符串推送到数组上之外,什么都不做。这样做本身不会影响折线。

先修复 (

1(,然后再修复 (2(。

最新更新