У меня в nuvi 1310 оригинальный текст предупреждения в всплывающем окошке вообще не показывается, всегда "Впереди оповещен. о скорости" (перевод Speed Alert Ahead
) для любых точек.
Задавать дистацию вообще нулевой сам еще не пробовал. Для начала у себя сделал это для мобильных засад и POI Loader их всех исключил из общего количества обработанных точек в на своей странице отчета. Хотя внутри GPI они вроде есть, судя по неизменившемуся размеру. Посмотрим, будут ли они отрабатывать у меня при превышении скорости.
Расширил GpxFilter.xslt новым параметром ReplaceDistance. Если он будет задан 0 или больше 10, то это значение и будет записано в Proximity. Если 2 (по умолчанию), то будет сохранено оригинальное значение Proximity из базы. А если 1, то Proximity будет вычисляться в зависимости от типа точки и заданной скорости. Исходя из своего опыта, предложил пока такой алгоритм:
<!-- Recalculate distance depending on type and speed limit -->
<xsl:variable name="speed" select="number(substring-after(../../../gpx:name, '@'))"/>
<xsl:choose>
<xsl:when test="$WarningTypeId=1"><xsl:value-of select="$speed * 7"/></xsl:when> <!-- Fixed radar -->
<xsl:when test="$WarningTypeId=2"><xsl:value-of select="$speed * 2"/></xsl:when> <!-- Radar (traffic light) -->
<xsl:when test="$WarningTypeId=3">50</xsl:when> <!-- Radar (redlight) -->
<xsl:when test="$WarningTypeId=4"><xsl:value-of select="$speed * 6"/></xsl:when> <!-- Radar (specs) -->
<xsl:when test="$WarningTypeId=5"><xsl:value-of select="$speed * 6"/></xsl:when> <!-- Mobile radar -->
<xsl:when test="$WarningTypeId=11">200</xsl:when> <!-- Radar (bus lane) -->
<xsl:when test="$WarningTypeId=20">300</xsl:when> <!-- Stationary post -->
<xsl:when test="$WarningTypeId=21">100</xsl:when> <!-- Railroad crossing -->
<xsl:when test="$WarningTypeId=22">200</xsl:when> <!-- School -->
<xsl:when test="$WarningTypeId=100">100</xsl:when> <!-- Built-up area -->
<xsl:when test="$WarningTypeId=101"><xsl:value-of select="$speed * 4"/></xsl:when> <!-- Speed limit -->
<xsl:when test="$WarningTypeId=102">100</xsl:when> <!-- Speed bump -->
<xsl:when test="$WarningTypeId=103"><xsl:value-of select="$speed * 4"/></xsl:when> <!-- Dangerous road -->
<xsl:when test="$WarningTypeId=104"><xsl:value-of select="$speed * 5"/></xsl:when> <!-- Dangerous turn -->
<xsl:when test="$WarningTypeId=105"><xsl:value-of select="$speed * 4"/></xsl:when> <!-- Dangerous crossroad -->
<xsl:when test="$WarningTypeId=106"><xsl:value-of select="$speed * 3"/></xsl:when> <!-- Risk zone -->
<xsl:otherwise><xsl:value-of select="."/></xsl:otherwise>
</xsl:choose>
Хотелось бы сравнить с вашими значениями, охотно воспользуюсь чужим опытом
Для задания своей фиксированной дистанции надо дописать в GpxFilter.bat параметр ReplaceDistance=XX для каждой/нужной категории похожим образом:
if not errorlevel 1 msxsl.exe "%SourceGpxFile%" GpxFilter.xslt -t -o "%TargetGpxName%\%TargetGpxCategory%\Стационарные камеры.gpx" WarningTypeId=1 AddSpeedToWarningAudioFileName=%UseSpeedAudioForAlert1% AudioFileType=%AudioFileType% ReplaceDistance=0