04 December 2024, 08:44:09
⁣ ⁣
For the past 24 hours: 91 object added, 58 objects edited, 12 objects removed.

Author Topic: Отображение камер при любом масштабе  (Read 8566 times)

panivan

  • Постоялец
  • ***
  • Posts: 7
  • Карма: 11
    • View Profile
Есть такой досадный косяк у СГ, что при увеличении скорости камер не видно, работает только голосовое предупреждение. А очень хочется видеть, где она впереди. Тем более, что СГ не учитывает направление и может предупреждать о камере на соседней улице (если установлена большая дистанция предупреждения)

Информация, представленная ниже, может быть найдена на оф.сайте программы. Но Мне это потребовалось только в связи с использованием базы радаров с Нашего ресурса. И думаю опыт пригодится тут.
Моя версия СГ 5.0.394

Я сделал так, чтобы камеры были на экране всегда (в разумных пределах)
Для этого нужно отредактировать файл ресурсов PresPOI.xml
Он находится внутри Resources.rsr (это на самом дел zip-архив)

xml содержит секции вида
Code: [Select]
<obj CodeObj="18059"> <!-- RADARS -->
    <par CodeMrk="65" ColorFor="0x858585"/>
    <var SclMin="0" SclMax="50000">
      <elem> <mrk/> <txt/> </elem> </var>
  </obj>
CodeObj - категория объекта. У Меня уже стоял рядом коммент, что это
CodeMrk - код значка. В файле с радарами он в строках с камерами последний.
SclMin SclMax - минимальный и максимальный масштаб

Впервую строчку, после CodeObj Я дописал prior="1000". Этот параметр указывает приоритет значку, чтобы он был поверх других, если что-то ещё рядом окажется. Это значение штатно присутствует для станций метро.
Максимальный масштаб задал 200000. Это значение последнее в моём autoscalecfg.txt, т.е. это максимальный масштаб устанавливаемый при движении автоматически.

Т.е. стало вот так
Code: [Select]
<obj CodeObj="18059" prior="1000"> <!-- RADARS -->
    <par CodeMrk="65" ColorFor="0x858585"/>
    <var SclMin="0" SclMax="200000">
      <elem> <mrk/> <txt/> </elem> </var>
  </obj>
А также подправил
Code: [Select]
<obj CodeObj="18045" prior="1000"> <!-- POLICE -->
    <par CodeMrk="65" ColorFor="0x4000FF"/>
    <var SclMin="0" SclMax="200000">
      <elem> <mrk/> <txt/> </elem> </var>
  </obj>
Предположил, что посты ДПС, но визуально разницы не заметил.

Еще осталась одна непонятная деталь...
Несмотря на коды указанные в конце строк в файле радаров, лежачие полицейские отображаются тем же значком, что и камеры (65), хотя для них прописано 74. Ну и изменения в ресурсах также отражается на них, они тоже стали видны. Изменение названия файла 77Mos.all.txt <-> 77Mos.radar.txt никак не влияет.
В чем не стыковка, пока не разобрался.

Vektоr

  • Постоялец
  • ***
  • Posts: 2
  • Карма: 5
    • View Profile
Re: Отображение камер при любом масштабе
« Reply #1 on: 24 November 2011, 16:53:38 »
4
Дополнительно можно сделать отображение не только значков камер но и текста к ним при определенном масштабе, если применить код следующего вида
Code: [Select]
  <obj CodeObj="18059" prior="1000"> <!-- RADARS-->
    <par CodeMrk="65" ColorFor="0x858585"/>
    <var SclMin="75000" SclMax="500000">
      <elem>
        <mrk/>
      </elem>
    </var>
    <var SclMin="0" SclMax="75000">
      <elem>
        <mrk/>
        <txt/>
      </elem>
    </var>
  </obj>
Текст появляется и исчезает при масштабе 75000, при масштабе 500000 исчезает значек.
Хотелось бы еще заменить значек радара или хотя бы изменить размер. Может кто знает как это сделать?

panivan

  • Постоялец
  • ***
  • Posts: 7
  • Карма: 11
    • View Profile
Re: Отображение камер при любом масштабе
« Reply #2 on: 06 December 2011, 12:02:46 »
1
Хотелось бы еще заменить значек радара или хотя бы изменить размер. Может кто знает как это сделать?
Возможен такой вариант с SizeMrk и SizeTxt, а также ColorBkg
Code: [Select]
<obj CodeObj="18059" prior="1000> <!-- RADARS -->
   <par CodeMrk="65" ColorFor="0x0202d3" ColorBkg="0xFFFFFF" SizeMrk="50" SizeTxt="40"/>
   <var SclMin="0" SclMax="200000">
      <elem> <mrk/> <txt/> </elem> </var>
</obj>
В комбинации с индивидуальным масштабом для текста не пробовал, но думаю будет работать.

Дефолтные настройки в секции
Code: [Select]
<defaults ... SizeMrk="45" SizeTxt="45" ... />
CodeMrk="65" - это номер значка в базе глифов.
На версиях 3.х.х эти глифы можно было как-то экспортировать/импортировать, выбрать другой значек... но в 5.х.х замена значка работает, но непонятно как. У Меня при смене 65, на любой другой номер просто отображается кружок (СГ для ВинЦЕ)

"в пятой версии программы работа с глифами не поддерживается, так как изменен формат хранения данных" (c)
« Last Edit: 06 December 2011, 12:34:25 by panivan »

panivan

  • Постоялец
  • ***
  • Posts: 7
  • Карма: 11
    • View Profile
5
Для Семёрки всё по прежнему актуально.
В Resources.rsr/PresRadars.xml
Добавил prior="1000"
Увеличил SclMax
Code: [Select]
  <obj CodeObj="18059" prior="1000"> <!-- RADARS -->
    <par CodeMrk="65" ColorFor="0x858585"/>
    <var SclMin="0" SclMax="500000">
      <elem> <pict PictName="RADARS1.bmp"/> <txt/> </elem>
    </var>
  </obj>
Всё работает