<<< Назад

Запись новых координат в базу, если они не изменились.


Vip (2021-09-30 10:56:51):

Оставлю здесь свой вариант:
Запись новых координат в базу, если изменились в результате движения. Запись в базу если координаты не изменились, но изменился заряд батареи треккера.

изменить файл /modules/livegpstracks/livegpstracks.class.php
изменить содержимое функции function readData()
на

function readData() {
    $this->getConfig(); 
    $table='lgps_in';   
    $properties=SQLSelect("SELECT * FROM $table;");

    foreach ($properties as $did)
    {
    $num=$did['DID'];
    $title=$did['TITLE'];
    //$urls[] = ['url' => 'http://livegpstracks.com/viewer_coos_s.php?code='.$num];
    $urls[] = ['url' => 'http://livegpstracks.com/viewer_coos_s.php?code='.$num,'name'=>$title,'numer'=>$num];
    }   

    foreach ($urls as $url1) {

        //echo $url1['url'];
        $title=$url1['name'];
        $numer=$url1['numer'];
        $content=getURL($url1['url'], 0);  
        $data=json_decode($content,true);
        //$objn=$data[0]['id'];
        $objn=$data[0]['code'];

            //echo $objn.'----------------';
            if ($objn<>'') {
                addClassObject('livegpstracks',$objn);
                $src=$data[0];
                $lud=gg($objn.'.d'); $lut=gg($objn.'.d');       

                $curlat=gg($objn.'.lat');
                $curlng=gg($objn.'.lng'); 
                $curbat=gg($objn.'.perbattery');
                $newlat=$data[0]['lat'];
                $newlng=$data[0]['lng'];
                $newbat=$data[0]['perbattery'];
                $newspd=$data[0]['speed'];
                if (($curbat<>$newbat)||((($curlat<>$newlat)||($curlng<>$newlng))&&($newspd<>0)))
                    {
                    sg( $objn.'.json',$content);
                    sg( $objn.'.link','https://livegpstracks.com/dv_'.$objn.'.html'); 
                    sg( $objn.'.title',$title);     
                    foreach ($src as $key=> $value ) {
                       sg( $objn.'.'.$key,$value);
                     //echo $key;
                    $upd = false;
                    }     

                    $rec=SQLSelectOne("SELECT * FROM lgps_in WHERE DID='".$numer."'");
                    //$rec['VALUE'] = 'ok';
                    $smadr=$this->getaddrfromcoord(gg($objn.'.lat'),gg($objn.'.lng'));
                    //$smadr='улица';
                    //$smadr=$this->ga('56.836498','60.691435' );
                    $rec['VALUE'] = gg($objn.'.lat').','.gg($objn.'.lng') ;
                    $rec['COORD'] = gg($objn.'.lat').','.gg($objn.'.lng') ; 
                    //$rec['VALUE'] = $smadr ;
                    $rec['GPSLBS'] =gg($objn.'.gpslbs'); 
                    if (gg($objn.'.battery')<>"" ) {$rec['BATTERY'] =gg($objn.'.battery'); }
                    if (gg($objn.'.perbattery')<>"" ) {$rec['BATTERY'] =gg($objn.'.perbattery'); }  

                    $rec['TEMP'] =gg($objn.'.temper'); 
                    $rec['DEVICE'] =gg($objn.'.device'); 
                    $rec['UPDATED'] = date('Y-m-d H:i:s');
                    SQLUpdate('lgps_in', $rec);
                    //if ($lud<> gg($objn.'.d')   and  ($lut<> gg($objn.'.t'))) {

                    $url = BASE_URL . '/gps.php?latitude=' . gg($objn.'.lat')
                            . '&longitude=' . gg($objn.'.lng')
                            . '&altitude=' . gg($objn.'.altitude')
                            . '&accuracy=' . gg($objn.'.gpsaccuracy') 
                            . '&provider=' . gg($objn.'.cellid') 
                            . '&speed='       .gg($objn.'.speed') 
                            . '&battlevel=' . gg($objn.'.battery') 
                            . '&charging=' . gg($objn.'.charging') 
                            . '&deviceid=' . $objn ;
                    getURL($url, 0);
                    //$adr=getaddrfromcoord(gg($objn.'.lat'),gg($objn.'.lng'));  
                    sg($objn.'.address', $adr); 
                    //$spl=split(',',$adr) ;
                    $spl=explode(',',$adr) ;
                    sg($objn.'.short_address', $spl[0]); 
                    sg($objn.'.gpsupdate', 'updated'); 
                    //}    
                    //else {sg($objn.'.gpsupdate', 'no need'); }     
                    }
            }               

        }

    }
(0)
 

Пожалуйста, войдите в систему, чтобы добавлять комментарии Присоединиться!