用谷歌在谷歌地图上画两条不同的路径

时间:2011-07-14 13:08:32

标签: php google-maps

嘿,这是我的谷歌地图代码

function temp(){
    var device_id=document.getElementById('hide').value;
    //alert(device_id);
    for(j=0;j<device_id;j++)
    {
        // alert(document.getElementById('hid'+j).value);

        $.ajax({
            type: 'post',
            url: '<?=base_url()?>index.php/admin/tracking/get_location/'+document.getElementById('hid'+j).value,
            // data: 'season_id='+season_id,
            dataType: "json",
            success: function(msg) {

                // directionsDisplay.setMap(null);
                deleteOverlays();
                $.each(msg,function(index,value){

                    var newLatlng = new google.maps.LatLng(value['lat'],value['long']);
                    map.panTo(newLatlng);
                    if(myPoints.length>0)
                    {
                        var oldLatlng=myPoints[myPoints.length-1];
                        var myCoordinates = [
                            oldLatlng,
                            newLatlng
                        ];
                        var myPath = new google.maps.Polyline({
                            path: myCoordinates,
                            strokeColor: "#FF0000",
                            strokeOpacity: 1.0,
                            strokeWeight: 2
                        });
                        way.push(myPath);
                        myPath.setMap(map);
                    }
                    //var newLatlng = new google.maps.LatLng(value['lat'],value['long']);
                    myPoints.push(newLatlng);
                    map.panTo(newLatlng);
                })
            }
        });
    }
    setTimeout("temp1()",2000);
}

function temp1(){
    var device_id=document.getElementById('hide').value;
    //alert(device_id);
    for(j=0;j<device_id;j++)
    {
        // alert(document.getElementById('hid'+j).value);
        $.ajax({
            type: 'post',
            url: '<?=base_url()?>index.php/admin/tracking/get_last_location/'+document.getElementById('hide').value,
            // data: 'season_id='+season_id,
            dataType: "json",
            success: function(msg) {
                var newLatlng = new google.maps.LatLng(msg.lat,msg.lng);
                map.panTo(newLatlng);
                document.getElementById('speed').value=msg.speed;
                if(myPoints.length>0)
                {
                    var oldLatlng=myPoints[myPoints.length-1];
                    var myCoordinates = [
                        oldLatlng,
                        newLatlng
                    ];
                    if(oldLatlng!=newLatlng)
                    {
                        var myPath = new google.maps.Polyline({
                            path: myCoordinates,
                            strokeColor: "#FF0000",
                            strokeOpacity: 1.0,
                            strokeWeight: 2
                        });
                        way.push(myPath);
                        myPath.setMap(map);
                    }
                    myPoints.push(newLatlng);
                }
                else
                {
                    //var newLatlng = new google.maps.LatLng(value['lat'],value['long']);
                    myPoints.push(newLatlng);
                }
            }
        });
    }
    setTimeout("temp1()",2000);
}

function deleteOverlays() {
    if (myPoints.length>0) {
        for (i in myPoints) {
            myPoints[i].setMap(null);
        }
        myPoints.length = 0;
    }
    if (way.length>0) {
        for (i in way) {
            way[i].setMap(null);
        }
        way.length = 0;
    }
}
</script>
</head>
    <body style="font-family: Arial; border: 0 none;">
    <?if (isset ($val)){$i=0;
        foreach ($val as $d){?>
            <input type="hidden" value="<?=$d['deviceid']?>" id="hid<?=$i?>"/>
        <? $i++; }?>
        <input type="hidden" value="<?=$i?>" id="hide"/>
    <? }?>

    <div id="map-canvas" style="width: 700px; height: 500px"></div>
    <div>
        <form action="<?=base_url()?>index.php/admin/tracking/index" method="post" enctype="multipart/form-data">
            <select name="device[]" id="device" multiple>
            <?if (isset ($adv)){
                foreach ($adv as $device){?>

                <option value="<?=$device['id']?>"><?=$device['device_name']?></option>

            <?}}?>
            </select>
            <div><input type="submit" value="Check Path" name="check" /></div>
        </form>
    </div>
    <div id="seediv">
     </div>

    <div id="directionsPanel" style="width:700px;display: none"></div>
    <p style="display: none">Total Distance: <span id="total"></span></p>

    <div>
        <label for="lname">Current Speed:</label>
        <input type="text" name="speed" id="speed" disabled />
    </div>
从临时函数

我在地图上启动了根,然后在temp1函数之后我从数据库得到了连续的路径点。但现在我想通过选择多组选择选项在地图上打印多个路径。我怎么能????

1 个答案:

答案 0 :(得分:0)

你的问题不明确。如果您收到N个点,看起来您正在添加N个路径,每个路径一个点。如果您想要一条长路径,请将点添加到数组中,然后仅创建并添加折线。如果要在地图上绘制多个单独的路径,则发回一个对象数组,并为每个路径执行上一步。