24 November 2024, 09:52:19
⁣ ⁣
For the past 24 hours: 48 objects added, 44 objects edited, 14 objects removed.

Author Topic: Углы, дистанция, азимут срабатывания SpeedCam  (Read 27495 times)

Yurych

  • Ветеран
  • *****
  • Posts: 291
  • Карма: 157
    • View Profile
В общем-то - не меняет, согласен.
Замечу лишь, что вот это значение (Direction) хранится в битовом представлении, занимает всего 5 бит. А не 2 байта.

NickF

  • Guest
Правильно ли я понимаю, что при установке точки, чтобы понять как она реально сработает в Навителе надо:
1) Выставленный азимут точки убавить до меньшего, кратного 15
2) угол сектора расширить до 30 гр.
3) дистанцию выставить 1000 м
После всех этих манипуляций мы увидим реальный сектор, где должна сработать точка

Yurych

  • Ветеран
  • *****
  • Posts: 291
  • Карма: 157
    • View Profile
1) Выставленный азимут точки убавить до меньшего, кратного 15
2) угол сектора расширить до 30 гр.
3) дистанцию выставить 1000 м
После всех этих манипуляций мы увидим реальный сектор, где должна сработать точка
Насколько я понимаю понимаю логику Навитела при обработке точек - именно так Навител и делает.
Но это - imho. Каких-либо комметариев от навителовских программистов я никогда не видел.

AlexandrCH

  • Ветеран
  • *****
  • Posts: 863
  • Карма: 256
  • MapCamDroid, Яндекс
    • View Profile
Правильно ли я понимаю, что при установке точки, чтобы понять как она реально сработает в Навителе надо:
1) Выставленный азимут точки убавить до меньшего, кратного 15
2) угол сектора расширить до 30 гр.
3) дистанцию выставить 1000 м
После всех этих манипуляций мы увидим реальный сектор, где должна сработать точка
Отсюда родилось предложение к Mic. Сделать что-то типа предварительного просмотра секторов сработки точки в разных навипрогах со свойственными им секторами и дальностями. Что-бы при желании можно было проверить корректно ли сработает точка у коллег.

NickF

  • Guest
За этот пост http://mapcam.info/forum/index.php?topic=1082.msg14102#msg14102 Yurych-у плюс поставил, потому как видно, что человек технически грамотный (и по форуму Navitel-овскому тоже видно). Считаю что нужен в здешних рядах
« Last Edit: 27 January 2012, 20:11:11 by NickF »

Max_rl

  • Ветеран
  • *****
  • Posts: 898
  • Карма: 622
  • Спец по Ситигиду и немного по Навителу. Картограф
    • View Profile
Насколько я понимаю понимаю логику Навитела при обработке точек - именно так Навител и делает.
Но это - imho. Каких-либо комметариев от навителовских программистов я никогда не видел.
Вот и я наконец смог присоединится.
Всё прочитал, но не согласен. Просто при моём кол-ве установленных точек и куче гемора по их отладке, могу точно сказать, что не всё так просто, нет линейной зависимости от угла и при смещении азимута даже на 10 град от центра дороги, точка может не сработать, а при смещении на 5-10 сработает не на дистанции 900м
Очень там всё хитро.

Mic

  • Администратор
  • Ветеран
  • *****
  • Posts: 3795
  • Карма: 932
    • View Profile
Все верно. Зависимость не линейная а дискретная. Благодаря Yurych, мы знаем, что данные об азимуте хранятся в 5 битах. А это значит максимальное хранимое число 32 , т.е хранится один из 24 номеров сектора в 150.
Сдвигая азимут на 100 от дороги, можно оказаться в соседнем секторе, а при сдвиге на 50 остаться в прежнем.
Проверяем наши догадки: Установим два объекта с азимутом 0 и 10 градусов.


Теперь зальем их в Navitel.


Как видим азимут у обеих стал совершенно идентичным. :)

Из чего можно сделать вывод, что реальный азимут у обеих точек 7.50

Но мы не знаем какой используется угол обзора (технически можно было использовать любой).


P.S. Кстати вот и ответ на вопрос: Почему стрелочки в навителе не всегда совпадают с азимутом на проекте?    ;)



 
     
« Last Edit: 28 January 2012, 00:54:37 by Mic »

Yurych

  • Ветеран
  • *****
  • Posts: 291
  • Карма: 157
    • View Profile
не всё так просто, нет линейной зависимости от угла и при смещении азимута даже на 10 град от центра дороги, точка может не сработать, а при смещении на 5-10 сработает не на дистанции 900м
Очень там всё хитро.
Хитро, это да...
Окончательный сектор видимости определяется в этом случае не столько азимутом, который мы иной раз выверяем так тщательно, а вот этой самой 15-градусной границей.
Поясню мысль:
Пусть дорога идет прямо, по азимуту 61 градус. Мы выставит объекту этот же азимут. На здешней карте зелёный сектор будет тоже "отцентрирован" на этот же азимут в 61°, т.е. сектор будет равномерно расширяться вдоль дороги. Но! Если Навител хранит в индексе только граничное значение (а реального азимута я там так и не нашел), то он будет считать так: 60° - левая граница сектора, 60+30° - правая. И каким будет сектор? Одна сторона будет почти параллельна дороге (отклонение в 1°), а вторая - перекроет большую область справа от дороги. Т.е. сектор станет резко асимметричным относительно дороги.  А если дорога изгибается чуть-чуть, в сторону меньшего азимута? Или координаты чуть-чуть сдвинуты? Вот вам и загадки с оповещениями...

Вчера листал форум, где-то видел (не помню уже где) вопрос по нескольким точкам в Навителе, на которые оповещение всегда выдаётся слишком поздно, а на некоторые - совсем не выдаётся. Думаю, что если проанализировать их с точки зрения этой вот гипотезы (а это всё таки гипотеза, я не уверен на 100% в своей правоте), то там либо небольшая неточность в координатах, либо небольшой изгиб дороги, либо небольшая неточность в определении азимута. Поиграв с азимутом и координатами, эти точки можно сделать видимыми, imho.
« Last Edit: 28 January 2012, 07:48:58 by Yurych »

Yurych

  • Ветеран
  • *****
  • Posts: 291
  • Карма: 157
    • View Profile
За этот пост Yurych-у плюс поставил,
Я вам искренне благодарен за это.
Но всё же должен сказать, что я сюда пришел не за кармой или иными рейтингами, а потому, что есть интерес. Остальное как-то менее важно.

NickF

  • Guest
За этот пост Yurych-у плюс поставил,
Я вам искренне благодарен за это.
Но всё же должен сказать, что я сюда пришел не за кармой или иными рейтингами, а потому, что есть интерес. Остальное как-то менее важно.
Да тут все не из-за кармы, просто она дает некоторые дополнительные возможности, ну и служит косвенной оценкой адекватности человека. Так что, "не отбрыкивайтесь" :) У кого-то за час набирается -5  :'(, а у другого +5 за сутки. *YES_*
« Last Edit: 28 January 2012, 09:48:56 by NickF »

VovaSha1971

  • Постоялец
  • ***
  • Posts: 32
  • Карма: 36
    • View Profile
Окончательный сектор видимости определяется в этом случае не столько азимутом, который мы иной раз выверяем так тщательно, а вот этой самой 15-градусной границей.
Поясню мысль:
Пусть дорога идет прямо, по азимуту 61 градус. Мы выставит объекту этот же азимут. На здешней карте зелёный сектор будет тоже "отцентрирован" на этот же азимут в 61°, т.е. сектор будет равномерно расширяться вдоль дороги. Но! Если Навител хранит в индексе только граничное значение (а реального азимута я там так и не нашел), то он будет считать так: 60° - левая граница сектора, 60+30° - правая. И каким будет сектор? Одна сторона будет почти параллельна дороге (отклонение в 1°), а вторая - перекроет большую область справа от дороги. Т.е. сектор станет резко асимметричным относительно дороги.  А если дорога изгибается чуть-чуть, в сторону меньшего азимута? Или координаты чуть-чуть сдвинуты? Вот вам и загадки с оповещениями...
Вот сейчас живой пример IDX: 175375 Азимут 105, и по предположению Yurych, это должно являться левой границей сектора в Навителе. Тогда угол обзора уйдет к югу (105+30),
и в Навителе это предупреждение вообще не должно срабатывать. А автор проверял - работает. Или я что-то недопонимаю?  ???

Yurych

  • Ветеран
  • *****
  • Posts: 291
  • Карма: 157
    • View Profile
Ваша картинка отличается от того, что я увидел в IDX: 175375... Там сектор (азимут 105, угол 30) нормально покрывает дорогу, хоть на мелком, хоть на крупном масштабе. То есть я не вижу пока противоречия :)

VovaSha1971

  • Постоялец
  • ***
  • Posts: 32
  • Карма: 36
    • View Profile
Так ведь здесь азимут - это биссектриса сектора? Я и подкрутил так, чтобы наглядно было, как это Навител должен видеть. (105+15/2)=112,5. Я и поставил 113 для наглядности. А реально, конечно, стоит 105 и дорогу покрывает. И угол там 15, а не 30. Или я туплю? :( Поправьте, если что не так понял :)   
« Last Edit: 21 February 2012, 14:10:55 by VovaSha1971 »

Yurych

  • Ветеран
  • *****
  • Posts: 291
  • Карма: 157
    • View Profile
Так ведь здесь азимут - это биссектриса сектора? Я и подкрутил так, чтобы наглядно было, как это Навител должен видеть. (105+15/2)=112,5. Я и поставил 113 для наглядности. А реально, конечно, стоит 105 и дорогу покрывает. И угол там 15, а не 30.
Я всё же хочу ещё раз сказать, что предположения по поводу расчета угла Навителом - это только предположения, гипотеза. Хотя они и проверялись на практике, но проверялись с навигатором, а не с точными приборами, да и проверялись всего на нескольких точках.
То есть мои слова не есть истина в последней инстанции.

А что касается вот этой точки, то она пока что подтверждает гипотезу. Применительно в этому случаю Навител должен делать так:
1. Прочитать азимут. Он = 105.
2. Округлить азимут до ближайшего меньшего угла, кратного 15. Это будет то же число, 105 градусов.
3. Добавить к этому углу 30 градусов - это ширина сектора. Сектор - всегда в 30 градусов. Ширина сектора, указанная в нашей базе, Навителу не доступна, т.е. роли не играет.
4. Полученный сектор (от 105 до 135 градусов) использовать для оповещения.

То, что мы видим на картинке - сектор даже в 15 градусов покрывает дорогу. Тем более он покроет эту дорогу при 30 градусах.
Азимут - действительно биссектриса, но азимут-то там 105, а не 113 градусов!.

Навител не хранит в индексе истинный угол (азимут), который мы указываем в базе, а хранит вот этот, округленный угол. Хотя, при желании, программа могла бы найти в файле соответствующую строку и прочитать оттуда азимут, но в индексе я не увидел указателей на соответствующие строки, а рыться в файле прямым перебором для поиска каждой строки... ну вряд ли в Навителе такие уже неграмотные программисты.

VovaSha1971

  • Постоялец
  • ***
  • Posts: 32
  • Карма: 36
    • View Profile
Попробую поподробнее объяснить свои "крутилки" :)
Quote
Применительно в этому случаю Навител должен делать так:
1. Прочитать азимут. Он = 105.
2. Округлить азимут до ближайшего меньшего угла, кратного 15. Это будет то же число, 105 градусов.
3. Добавить к этому углу 30 градусов - это ширина сектора. Сектор - всегда в 30 градусов. Ширина сектора, указанная в нашей базе, Навителу не доступна, т.е. роли не играет.
4. Полученный сектор (от 105 до 135 градусов) использовать для оповещения.
Если мы принимаем это таким образом, то на нашей карте это должно выглядеть, как сектор от 105 до 135 градусов (как это, по нашему мнению, видит Навител).  Чтобы нарисовать на нашей карте такой сектор, надо поставить азимут 120 (биссектриса данного сектора). Правильно? На картинке это будет выглядеть так:

По картинке видно, что данный сектор дорогу не захватывает. Точнее, захватывает на пересечении с бетонкой, а вот перекресток с Некрасова - точно не попадает в створ сектора. wiktor90 же проверял, и утверждает, что срабатывает. Может тогда логичнее предположить, что Навител докручивает этот округленный азимут в обе стороны, +-15 градусов? Стрелка со скрина, который выложил Kimson, четко направлена на 105 градусов. А вот куда он (Навител то бишь) дальше от этого азимута сектор рисует - вопрос.
Если предположить, что все-таки Навител в обе стороны крутит от 105 по 15 градусов, то спидкам должен по логике сработать при движении по ул. Комарова от Некрасова (на второй картинке), чего в случае, если сектор от 105 до 135 быть не должно. Надо просимулировать попробовать.
Извиняюсь, если загрузил, но очень уж хочется разобраться.  *HELP* :)

P.S. Сейчас еще одна крамольная мысль пришла: а что если алгоритм в Навителе работает таким образом: если считанный из файла азимут не кратен 15 градусам, то округляет до меньшего, кратного 15 градусам, азимута и пририсовывает к нему 30-ти градусный сектор - как и говорил Yurych. А если кратен 15 - то добавляет по 15 градусов влево-вправо, чтобы более корректно выхватить сектор. Т.е., если у нас азимут 95, то возьмет от 90 до 120, а если 90 - то от 75 до 105. Но это опять же просто мысли вслух. Как это проверить - не знаю. ??? 
« Last Edit: 22 February 2012, 08:43:37 by VovaSha1971 »