Нарисуйте два разных пути на карте Google с php - PullRequest
3 голосов
/ 14 июля 2011

эй, вот мой код для карты Google

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, которую я запустил, root на карте, и после этой функции temp1 я получил непрерывные точки для пути из базы данных.но теперь я хочу напечатать несколько путей на карте, выбрав несколько вариантов выбора.как я могу ????

1 Ответ

0 голосов
/ 09 сентября 2011

Ваш вопрос не ясен.Если вы получаете N баллов, похоже, что вы добавляете N путей с одной точкой каждый.Если вам нужен один длинный путь, добавьте точки в массив и только потом создавайте и добавляйте ломаную линию.Если вы хотите нарисовать несколько отдельных путей на карте, отправьте обратно массив объектов и выполните предыдущий шаг для каждого из них.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...