использовать, когда достоверно известно, что терминал не двигался с места. Иначе надо дорабатывать фильтрами по зонам.
Позволяет оценить разброс координат при включении прибора (датчик 16).
Алгоритм:
1. Ищет все случаи срабатывания датчика 16 - включение терминала
2. Для каждого из них
2.1. ищутся записи с валидными координатами - Каждая ближайшая 1-ая по времени (более новая) запись
фиксируется в таблице
3. Таблица выводится на экран
Для создания KML файла можно воспользоваться сервисом http://www.earthpoint.us/ExcelToKml.aspx
Code
use bn
declare @garnum varchar(16), @OID int, @ad_id int, @ad_tele_time datetime
create table #t (tele_time datetime, long float,lat float)
select @garnum='%бау%' -- гаражный номер ТС
select @OID=ObjectID from dbo.FLEET_Object where ObjectGarNum like @garnum
declare cur cursor local for
select top 100 ad.id,ad.tele_time from dbo.SYS_DEV_ArchiveData ad
--inner join dbo.FLEET_Object as O on O.ObjectID=AD.ObjectID
where ad.ObjectID =@OID
and dbo.FLEET_IsSensorActive (16, ad.Digit_Sens_Num, ad.Flags)=1 -- фильтр по датчику
order by tele_time
open cur
while 1=1 begin
fetch next from cur into @ad_id, @ad_tele_time
if @@FETCH_STATUS!=0 break
insert into #t
select top 1 ad.tele_time, ad.long,ad.lat from dbo.SYS_DEV_ArchiveData ad
--inner join dbo.FLEET_Object as O on O.ObjectID=AD.ObjectID
where @ad_tele_time <= ad.tele_time and valid=1 and ad.ObjectID =@OID
order by ad.tele_time
end
close cur
deallocate cur
select lat,long,tele_time from #t
drop table #t
на выходе таблица Lat,long,tele_time