Показать сообщение отдельно
Старый 17.12.2010, 22:23   #675
Bersenev
Бывалый писикарщик
 
Аватар для Bersenev
 
Регистрация: 23.04.2009
Возраст: 53
Город: Ставрополь
Регион: 26
Машина: Opel Zafira 2007
Сообщений: 5,275
Bersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant futureBersenev has a brilliant future
По умолчанию

Цитата:
Сообщение от samara Посмотреть сообщение
Да, пожалуйста объясни! Очень необходимо! Уже записываю!!! Спасибо заранее!!!!
В папке CFStyle\GPSExec\ находишь файл poi.kml, в нем строки такого содержания

<Point id="13" name="F-60" lattitude="55.831060" longitude="84.698670" hdg="360" hdg_back="360" deltahdg="180" dist="150" skincommand="no" skincommand_out="no" xmlns="" />

Где

id - идентификатор точки в скине, допустим "13" это камеры контроля скорости (если не переназначал)
name - название точки, в скине пока не используется, туда заносятся названия POI из внешних kml файлов на всякий случай
lattitude - широта
longitude - долгота

а теперь то, что отвечает за способ определения приближения к точке.

hdg - азимут, к которым точка была добавлено, то есть направление движения в момент добавления точки.

hdg_back - задумывался как обратный азимут, то есть направление обратное направлению движения в момент добавления точки, но можно присваивать ему любое значение для того чтобы задать приближение к точке с любого из нужных направлений.

delta_hdg - размер сектора поиска в градусах

dist - расстояние до точки

skincommand - команда выполняемая скином при входе в зону действия poi

skincommand_out - команда выполняемая скином при выходе из зоны действия poi

Так вот есть три варианта нахождения точки.

1. Если hdg="360" hdg_back="360" deltahdg="180", то из скина берётся значение переменной PoiDistId$id$ PoiWidthId$id$ для определения расстояния до точки и ширины полосы поиска точки, то есть для точки с id=13, беруться значения из переменных PoiDistId13 и PoiWidthId13. Этот вариант используется для предупреждений. Выход их зоны происходит сразу после проезда точки. Т.е. если представить что PoiWidthId13 ширина дороги, то поиск происходит по всей ширине дороги.

2. hdg="360" hdg_back="360" deltahdg="360" , то зоной действия считаеся зона с радиусом dist или PoiDistId$id$(если такая переменная задана в скине). То есть при въезде в любое место этого круга вокруг точки(простите за тавтологию) происходит срабатывание. Этот вариант используется для действий.

3. Если 0<= hdg<= 359 0<= hdg_back<=359 deltahdg<=179 , то применяется третий вариант поиска точки.

Допустим hdg=0 hdg_back=0 deltahdg=10, то при азимуте движения 0 плюс минус 10 градусов ( что соответствует движению на на север, а приближение к точки с юга) будет происходить срабатывание.

Допустим hdg=0 hdg_back=90 deltahdg=10, то при азимуте движения 0 плюс минус 10 градусов ( что соответствует движению на на север, а приближение к точки с юга) или при азимуте движения 90 градусов плюс минус 10 градусов ( что соответствует движению на на восток, а приближение к точки с запада) будет происходить срабатывание.

т.е. можно задать два направления для срабатывания точки.
Выход из зоны действия сразу при проезде точки.

т.е. Для того чтобы тебе получить нужный результат, запускаешь экран ПРИБОРЫ или добавляешь показатель АЗИМУТ в шапку. При добавлении точки запоминаешь значение азимута. Допустим оно было 159 градусов. Потом находишь эту точку в poi.kml, она должна быть одной из последних в файле.
И hdg="360" hdg_back="360" deltahdg="180" меняешь на hdg="159" hdg_back="159" deltahdg="10" . Сектор в deltahdg задаёшь нужный тебе.

Вроде всё. Если неясно (а это неудивительно) спрашивай
Bersenev вне форума   Ответить с цитированием