Скрипт создает новую зону (полигон), а в качестве точек использует точки из истории движения ТС
Код
use bn
set nocount on
set dateformat ymd
declare @GarNum varchar(20), @ObjetID int, @start datetime, @stop datetime,@zonename varchar(256), @zoneid int
select @zonename='зона 1', @GarNum='м614тх',@start='2013-07-24 11:10:40',@stop='2013-07-24 11:16:02'
select @ObjetID=ObjectID from [dbo].[FLEET_Object] as O where o.ObjectGarNum=@GarNum and ObjectActive=1
if @ObjetID is null begin print 'ТС не найдено ' return
end
if exists (select zoneid from [dbo].[FLEET_Zone] where name=@zonename and ZoneActive=1) begin print 'Зона: '+@zonename+' уже существует' return
end
if not exists (select long,lat from dbo.SYS_DEV_ArchiveData where Objectid=@ObjetID and tele_Time between @start and @stop)
begin print 'Данные за указанный период по указнному ТС не найдены: ' return
end
insert into [dbo].[FLEET_Zone]([Name],[Type],[GlobalType],[ZoneActive],[Comment])
values (@zonename,1,1,1,'Автосоздание зоны '+@zonename+' '+@GarNum + convert (varchar(30),@start,120)+'-'+convert (varchar(30),@stop,120))
select @zoneid=@@IDENTITY
insert into [dbo].[FLEET_ZoneDescript] ([ZoneID],long,lat,orderby)
select @zoneid, long,lat, ROW_NUMBER () over (order by tele_time)from dbo.SYS_DEV_ArchiveData where Objectid=@ObjetID and tele_Time between @start and @stop order by tele_time
настройка данных скрипта производится в строке
select @zonename='зона 1', @GarNum='м614тх',@start='2013-07-24 11:10:40',@stop='2013-07-24 11:16:02'
где "Зона 1" 0 название будущей зоны (зоны не должно быть с таким названием - проверка что зоны нет)
@GarNum - точный гаражный номер - проверка что тс найдено
@start = начало выборки истории
@stop = конец выборки истории
что бы не создавать пустых зон встроена проверка, что по указанному тс за указанный период данные есть