使用PHP在Google地图上绘制两条不同的路径。

3

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

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>

从temp函数开始,我在地图上启动了根,并通过temp1函数从数据库获得了连续的路径点。但现在我想通过选择多个选择选项集在地图上打印多条路径。我该怎么做?

1个回答

0

你的问题不够清晰。如果你收到了N个点,那么看起来你是在添加N条只有一个点的路径。如果你想要一条长路径,将这些点添加到一个数组中,然后只在之后创建并添加折线。如果你想在地图上绘制多条分离的路径,则返回一个对象数组,并对每个执行前面的步骤。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接