Анализ страницы https://telraam.net/en
Основное Готовность: 75%
Домен
telraam.net
Состояние доменного имени
?
Проверяем корректность доменного имени и наличие технических проблем на уровне домена.
Домен второго уровня идеален для продвижения.
Отличный запоминающийся домен.
Ответ сервера
200 Успешный ответ
HTTP-код ответа и цепочка редиректов
?
Код 200 — страница доступна. Коды 3xx — редиректы (цепочки замедляют загрузку и размывают ссылочный вес). Коды 4xx/5xx — ошибки, поисковик не сможет проиндексировать страницу.
Сервер настроен корректно.
Безопасность
Сайт безопасен
Использование HTTPS и SSL-сертификат
?
HTTPS — обязательный стандарт. Google и Яндекс отдают предпочтение защищённым сайтам. Отсутствие SSL или просроченный сертификат ведут к предупреждениям в браузере и снижению позиций.
Не настроен HSTS (Strict-Transport-Security) — рекомендуется включить.
На сайте работает защищенный протокол ssl и сайт открывается по https.
Ssl-сертификат действителен до 09.01.2027 2:59:59.
Поздравляем! Сайт не содержится в реестре РКН.
Кодировка
utf-8
Кодировка символов страницы
?
Стандарт — UTF-8. Неправильная кодировка вызывает нечитаемые символы и мешает поисковику корректно распознать текст страницы.
Указана кодировка на странице utf-8.
Язык
en
Атрибут lang в HTML-теге
?
Атрибут lang (<html lang="ru">) сообщает поисковикам и браузерам, на каком языке написана страница. Помогает при ранжировании в региональном поиске.
Язык документа указан явно: en.
Скорость загрузки
~0,38сек
Время отклика сервера (TTFB)
?
Time To First Byte — время до получения первого байта от сервера. Норма до 200 мс. Медленный отклик ухудшает пользовательский опыт и ранжирование: Яндекс и Google учитывают скорость страниц.
Скорость загрузки сайта 0,38сек оптимальна.
Объем документа
63Кб
Размер HTML-кода страницы
?
Слишком большой HTML замедляет парсинг браузером и сканирование поисковым роботом. Рекомендуется не более 200 Кб.
Объем html-документа 63Кб оптимален.
Структура html-документа корректна.
Ресурсы
Ресурсы: 29
Внешние ресурсы страницы (CSS, JS, изображения)
?
Количество и тип подключённых ресурсов влияют на скорость загрузки. Большое число запросов увеличивает время рендеринга страницы.
Кол-во файлов ресурсов 29 много для одной страницы. Приемлемо до 10. Проведите оптимизацию файлов ресурсов!
Показать полный список ресурсов
| Тип | Название | Значение |
|---|---|---|
| stylesheet | https://telraam.net/js/datepicker/dist/datepicker.min.css | |
| stylesheet | https://telraam.net/css/app.css?v=503 | |
| stylesheet | https://unpkg.com/leaflet@1.6.0/dist/leaflet.css | |
| stylesheet | https://telraam.net/css/Control.Geocoder.css | |
| stylesheet | text/css | https://telraam.net/js/trumbowyg/ui/trumbowyg.min.css |
| stylesheet | https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.6/dist/jquery.fancybox.min.css | |
| js | https://code.jquery.com/jquery-3.7.1.min.js | |
| js | https://telraam.net/js/datepicker/dist/datepicker.min.js | |
| js | https://telraam.net/js/app.js?v=10007 | |
| js | https://unpkg.com/leaflet@1.3.3/dist/leaflet.js | |
| js | https://telraam.net/js/leaflet-editable-polyline.js | |
| js | https://telraam.net/js/leaflet-grayscale-master/TileLayer.Grayscale.js | |
| js | https://telraam.net/js/leaflet-ajax/leaflet.ajax.min.js | |
| js | https://telraam.net/js/leaflet-terminator/terminator.js | |
| js | https://telraam.net/js/leaflet-utilities/leaflet-hash.js | |
| js | https://telraam.net/js/leaflet-grayscale-master/TileLayer.Grayscale.js | |
| js | https://telraam.net/js/leaflet-control-geocoder/js/Control.Geocoder.js | |
| js | https://telraam.net/js/leaflet-touch-helper/leaflet-touch-helper.js | |
| js | https://cdn.jsdelivr.net/npm/chart.js@3.7 | |
| js | https://cdn.jsdelivr.net/npm/luxon@1.26.0 | |
| js | https://cdn.jsdelivr.net/npm/chartjs-adapter-luxon@1.0.0/dist/chartjs-adapter-luxon.min.js | |
| js | https://telraam.net/js/moment/moment.min.js | |
| js | https://telraam.net/js/moment/moment-timezone-with-data-10-year-range.min.js | |
| js | https://telraam.net/js/trumbowyg/trumbowyg.min.js | |
| js | https://telraam.net/js/trumbowyg/plugins/trumbowyg.cleanpaste.min.js | |
| js | https://telraam.net/js/trumbowyg/plugins/trumbowyg.upload.js | |
| js | https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.6/dist/jquery.fancybox.min.js | |
| js | https://plausible.io/js/plausible.js | |
| js | /livewire/livewire.js?id=90730a3b0e7144480175 |
Серверные заголовки
Кол-во: 7
HTTP-заголовки ответа сервера
?
Заголовки сервера передают браузеру и поисковику служебную информацию: кеширование, безопасность (CSP, HSTS), сжатие (gzip). Правильная настройка ускоряет загрузку и повышает защищённость.
Найдены серверные заголовки 7шт. Подробнее про серверные заголовки.
Показать полный список серверных заголовков
| Ключ | Значение |
|---|---|
| Server | nginx |
| Date | Fri, 21 Aug 2026 18:51:41 GMT |
| Vary | Accept-Encoding |
| Cache-Control | no-cache, private |
| Set-Cookie | XSRF-TOKEN=eyJpdiI6Imh3U0V6aGFteE5xeUs5NTBUUThrVGc9PSIsInZhbHVlIjoiRlBRME1aWGptNXVReDQyNW1XcElYWkM0NDlFeksxVUxBdnExYks3NWRnRmxyd3k1QVBRa0Y2NFNKNDh5SnlzajlTTTlKM3hINmRuS0VJdDZua1MvVEc1VWlkVWQ4enAyVm9tTTVsbXJqUkdmaWpFUnBWVktCUXVnWVppOUt4RXQiLCJtYWMiOiJmNjlhZTBlMzYyYjlmZGFjMDc5ZWIwMDRmOWY2OGMyYzQ5NjRjZjM2MDY1MWEyNzBkZGQ5MmEyNTZiYjdlMDBjIiwidGFnIjoiIn0%3D; expires=Sat, 21 Aug 2027 18:51:41 GMT; Max-Age=31536000; path=/; samesite=lax |
| Age | 0 |
| Accept-Ranges | bytes |
CMS
Не определена
Система управления сайтом (движок)
?
CMS — это движок, на котором работает сайт (WordPress, 1C-Bitrix, Tilda и др.). Знание CMS помогает понять возможности SEO-оптимизации и подобрать подходящие инструменты. «Не определена» — вероятно, самописный сайт или нестандартная сборка.
CMS не определена. Вероятно, сайт самописный либо движок надёжно скрыт. Это не ошибка.
Веб-сервер
Программное обеспечение сервера
?
Веб-сервер — это ПО, которое отдаёт страницы посетителям (nginx, Apache, IIS, LiteSpeed и др.). Определяется по серверным заголовкам ответа (Server, X-Powered-By и т.п.). «Не определён» — сервер намеренно скрывает эти заголовки, это нормальная практика безопасности.
Сайт работает на веб-сервере nginx.
Мета-теги Готовность: 50%
Title
Telraam
- Smart traffic counters for all transport modes - indoor and outdoor models.
Заголовок страницы в браузере и поисковой выдаче
?
Title — главный SEO-заголовок страницы. Влияет на CTR в поиске и ранжирование. Оптимальная длина: 50–70 символов. Ключевые слова — ближе к началу.
Необходимо уменьшить число символов в title (текущее значение: 126, оптимально: от 40 до 45)
Дублей словоформ в title не найдено.
Description
AI-powered, privacy-friendly traffic counters for pedestrians, cyclists, cars, and heavy vehicles — available in both indoor and outdoor models. Includes an intuitive dashboard and an open API for easy integration.
Описание страницы в поисковой выдаче (сниппет)
?
Meta Description — текст под заголовком в выдаче. Напрямую на позиции не влияет, но влияет на CTR. Оптимальная длина: 120–160 символов.
Необходимо уменьшить число символов в description (текущее значение: 214, оптимально: от 120 до 130)
Keywords
Traffic Counter, Citizens, Mobility, Bike, Car, Pedestrian, Trucks, Device, Platform, Api, Verkeersteller, Burgers, Open data
Список ключевых слов страницы (устаревший тег)
?
Meta Keywords не учитывается Яндексом и Google для ранжирования с 2009–2012 годов. Заполнение не обязательно, но не вредит. Конкурент может использовать содержимое для анализа.
Keywords установлены.
Канонический Url
Указывает поисковику основную версию страницы
?
Canonical (rel=canonical) предотвращает проблему дублей страниц. Должен точно совпадать с URL проверяемой страницы. Неправильный canonical может передать ссылочный вес на другую страницу.
Рекомендуем прописать канонический Url.
Robots
Ошибок нет
Директивы для поисковых роботов на уровне страницы
?
Meta Robots управляет индексацией конкретной страницы: index/noindex — индексировать ли, follow/nofollow — следовать ли по ссылкам. Noindex полностью исключает страницу из поиска.
Meta-тег robots не указан. Страница свободна для индексации.
Адаптивность
width=device-width, initial-scale=1
Настройка масштабирования на мобильных устройствах
?
Тег viewport (<meta name="viewport">) сообщает браузеру, как масштабировать страницу на мобильных. Стандарт: width=device-width, initial-scale=1. Отсутствие — признак отсутствия мобильной версии.
Meta-тег viewport со значением-константой width=device-width задаёт ширину страницы в соответствии с размером экрана.
Meta-тег viewport со значением initial-scale=1.0 определяет масштаб 1:1, т.е. «не масштабировать».
Разметка OpenGraph
Кол-во: 5
Мета-теги для красивых превью в соцсетях
?
OpenGraph (og:title, og:description, og:image) управляет тем, как страница выглядит при репосте в социальных сетях и мессенджерах. Отсутствие OG-тегов — невзрачный превью при шеринге.
Разметка OpenGraph задана. Страница оптимизирована под социальные сети.
Показать полный список og мета-тегов
| Тип | Значение |
|---|---|
| og:title | Telraam - Smart traffic counters for all transport modes - indoor and outdoor models. |
| og:description | AI-powered, privacy-friendly traffic counters for pedestrians, cyclists, cars, and heavy vehicles — available in both indoor and outdoor models. Includes an intuitive dashboard and an open API for easy integration. |
| og:image | https://telraam.net/images/common/og-image-s2data.jpg |
| og:image:width | 1200 |
| og:image:height | 630 |
Все мета-теги
Кол-во: 12
Полный список мета-тегов страницы
?
Таблица всех meta-тегов, включая нестандартные. Позволяет найти опечатки, дубли и лишние теги.
Найдены мета-теги 12шт. Мета-теги не видимы для человека и предназначены для обмена информацией между веб-страницей и поисковыми системами, браузерами и другими веб-службами. С ними роботы 🤖 и устройства ведут себя более ожидаемо.
Показать полный список мета-тегов
| Тип | Название | Значение |
|---|---|---|
| name | viewport | width=device-width, initial-scale=1 |
| name | msapplication-TileColor | #da532c |
| name | theme-color | #ffffff |
| name | csrf-token | Jv76nOBNGzq7HT7EDtA0U6PZs6UKjAUbCty8lJNY |
| name | title | Telraam - Smart traffic counters for all transport modes - indoor and outdoor models. |
| name | description | AI-powered, privacy-friendly traffic counters for pedestrians, cyclists, cars, and heavy vehicles — available in both indoor and outdoor models. Includes an intuitive dashboard and an open API for easy integration. |
| name | keywords | Traffic Counter, Citizens, Mobility, Bike, Car, Pedestrian, Trucks, Device, Platform, Api, Verkeersteller, Burgers, Open data |
| property | og:title | Telraam - Smart traffic counters for all transport modes - indoor and outdoor models. |
| property | og:description | AI-powered, privacy-friendly traffic counters for pedestrians, cyclists, cars, and heavy vehicles — available in both indoor and outdoor models. Includes an intuitive dashboard and an open API for easy integration. |
| property | og:image | https://telraam.net/images/common/og-image-s2data.jpg |
| property | og:image:width | 1200 |
| property | og:image:height | 630 |
Оптимизация Готовность: 70%
Структура
Ошибок нет
Семантические HTML-элементы страницы
?
Проверяет наличие основных структурных элементов: nav, header, footer, main. Корректная семантическая структура помогает поисковику понять архитектуру страницы.
Структура документа корректна (теги <html> и <body> присутствуют в одном экземпляре).
Контент
Есть ошибки
Объём и качество текстового содержимого
?
Анализирует объём полезного текста на странице. Слишком мало — страница может считаться малополезной. Слишком много — ухудшается читаемость и восприятие.
Абзацев с текстом 1 слишком мало. Добавьте больше абзацев с текстом (тег <p>)!
Кол-во слов 223 слишком мало. Добавьте больше текста (минимум 400 слов)!
Слова из title 7 встречаются в тексте достаточно.
Среднее число слов в абзаце 25 достаточно.
Кол-во знаков контента 1381 на странице оптимально.
Заголовки
Ошибок нет
Иерархия заголовков H1–H6
?
H1 должен быть один и содержать ключевой запрос. H2–H6 описывают подразделы. Пропуск уровней (H1 → H3) и несколько H1 — типичные ошибки, снижающие понятность страницы для поисковика.
На странице присутствуют заголовки <h2> 4. Это хорошо.
Тошнота
2,65
Насколько одно слово доминирует в тексте
?
Классическая тошнота = √(частота самого повторяющегося слова). Норма до 7–8: текст воспринимается естественно. Выше — поисковик может счесть страницу переспамленной.
Тошнота страницы в пределах нормы 3.
Академич. тошнота
9,87%
Насколько текст перенасыщен ключевыми словами
?
Академическая тошнота = (частота слова / общее количество слов) × 100%. Показывает долю конкретного слова в тексте. Норма 5–15%.
Академическая тошнота страницы в пределах нормы.
Семантическое ядро
20
Наиболее часто встречающиеся слова на странице
?
Топ слов по частоте использования. Показывает, какие слова доминируют в тексте с точки зрения поисковика.
Контент страницы содержит осмысленный текст и слова.
Показать список слов
| Слово | Кол-во | Частота |
|---|---|---|
| telraam | 7 | 3,14% |
| support | 3 | 1,35% |
| leuven | 2 | 0,90% |
| references | 2 | 0,90% |
| projects | 2 | 0,90% |
| partners | 2 | 0,90% |
| contact | 2 | 0,90% |
| device | 2 | 0,90% |
| network | 2 | 0,90% |
| pricing | 2 | 0,90% |
| questions | 2 | 0,90% |
| european | 2 | 0,90% |
| policy | 2 | 0,90% |
| anniversary | 1 | 0,45% |
| conference | 1 | 0,45% |
| register | 1 | 0,45% |
| current | 1 | 0,45% |
| devices | 1 | 0,45% |
| visualised | 1 | 0,45% |
| historical | 1 | 0,45% |
Индексация Готовность: 25%
Индексирование
Ошибок нет
Разрешено ли индексирование страницы
?
Проверяет, не закрыта ли страница от индексации через robots.txt, meta robots или X-Robots-Tag. Страница, закрытая от индексации, не появится в поисковой выдаче.
Анкоров на странице 57 оптимально. Поисковые роботы обязательно проиндексируют сайт.
Robots.txt
Найден корректный robots.txt
Файл управления сканированием сайта роботами
?
Robots.txt указывает поисковым роботам, какие страницы сканировать, а какие — нет. Ошибки в файле могут случайно закрыть важные разделы от индексации.
Robots.txt настроен корректно. Размер файла: 65047 байт. Загружен за: 0сек.
Проверяемая страница не запрещена в robots.txt.
Robots.txt доступен по постоянному адресу
Показать содержимое robots.txt
<!DOCTYPE html>
<html lang="robotstxt">
<head>
<meta charset="utf-8">
<meta name="viewport" content="width=device-width, initial-scale=1">
<!-- Meta Data -->
<link rel="apple-touch-icon" sizes="180x180" href="/apple-touch-icon.png">
<link rel="icon" type="image/png" sizes="32x32" href="/favicon-32x32.png">
<link rel="icon" type="image/png" sizes="16x16" href="/favicon-16x16.png">
<link rel="manifest" href="/site.webmanifest">
<link rel="mask-icon" href="/safari-pinned-tab.svg" color="#5bbad5">
<meta name="msapplication-TileColor" content="#da532c">
<meta name="theme-color" content="#ffffff">
<!-- Meta Data for CSRF Token -->
<meta name="csrf-token" content="hBVPugK0pgtN0OA1V3JpvUfH108uQW6WXa67LPBM">
<!-- Jquery -->
<script src="https://code.jquery.com/jquery-3.7.1.min.js"></script>
<link href="https://telraam.net/js/datepicker/dist/datepicker.min.css" rel="stylesheet">
<script src='https://telraam.net/js/datepicker/dist/datepicker.min.js'></script>
<!-- Scripts -->
<script src="https://telraam.net/js/app.js?v=10007" defer></script>
<!-- Fonts -->
<link rel="dns-prefetch" href="https://fonts.gstatic.com">
<!-- Same style inclused both for dashboard as web -->
<link href="https://telraam.net/css/app.css?v=503" rel="stylesheet">
<!-- leaflet -->
<link
rel="stylesheet"
href="https://unpkg.com/leaflet@1.6.0/dist/leaflet.css"
/>
<script src="https://unpkg.com/leaflet@1.3.3/dist/leaflet.js"></script>
<script src="https://telraam.net/js/leaflet-editable-polyline.js"></script>
<script src="https://telraam.net/js/leaflet-grayscale-master/TileLayer.Grayscale.js"></script>
<script src='https://telraam.net/js/leaflet-ajax/leaflet.ajax.min.js'></script>
<script src='https://telraam.net/js/leaflet-terminator/terminator.js'></script>
<script src='https://telraam.net/js/leaflet-utilities/leaflet-hash.js'></script>
<script src="https://telraam.net/js/leaflet-grayscale-master/TileLayer.Grayscale.js"></script>
<!-- leaflet search -->
<link rel="stylesheet" href="https://telraam.net/css/Control.Geocoder.css" />
<script src="https://telraam.net/js/leaflet-control-geocoder/js/Control.Geocoder.js"></script>
<!-- leaflet-touch-helper for mobile use -->
<script src='https://telraam.net/js/leaflet-touch-helper/leaflet-touch-helper.js'></script>
<!-- Chart JS -->
<!-- import chartjs -->
<script src="https://cdn.jsdelivr.net/npm/chart.js@3.7" crossorigin="anonymous"></script>
<!-- import luxon for working with datetimes -->
<script src="https://cdn.jsdelivr.net/npm/luxon@1.26.0" crossorigin="anonymous"></script>
<!-- import luxon adpater for integration with chartjs -->
<script src="https://cdn.jsdelivr.net/npm/chartjs-adapter-luxon@1.0.0/dist/chartjs-adapter-luxon.min.js"></script>
<!-- extra libraries: moment -->
<script src="https://telraam.net/js/moment/moment.min.js"></script>
<script src="https://telraam.net/js/moment/moment-timezone-with-data-10-year-range.min.js"></script>
<!-- extra libraries: livewire, for now only traffic-scout -->
<!-- editor -->
<link href="https://telraam.net/js/trumbowyg/ui/trumbowyg.min.css" rel="stylesheet" type="text/css">
<script src="https://telraam.net/js/trumbowyg/trumbowyg.min.js"></script>
<script src="https://telraam.net/js/trumbowyg/plugins/trumbowyg.cleanpaste.min.js"></script>
<script src="https://telraam.net/js/trumbowyg/plugins/trumbowyg.upload.js"></script>
<!-- fancybox -->
<link rel="stylesheet" href="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.6/dist/jquery.fancybox.min.css"/>
<script src="https://cdn.jsdelivr.net/gh/fancyapps/fancybox@3.5.6/dist/jquery.fancybox.min.js"></script>
<!-- SEO TITLES -->
<title>
Telraam
- Smart traffic counters for all transport modes - indoor and outdoor models. </title>
<meta property="og:title" content="Telraam - Smart traffic counters for all transport modes - indoor and outdoor models. "/>
<meta property="og:description" content="AI-powered, privacy-friendly traffic counters for pedestrians, cyclists, cars, and heavy vehicles — available in both indoor and outdoor models. Includes an intuitive dashboard and an open API for easy integration."/>
<meta name="title" content="Telraam - Smart traffic counters for all transport modes - indoor and outdoor models. "/>
<meta name="description" content="AI-powered, privacy-friendly traffic counters for pedestrians, cyclists, cars, and heavy vehicles — available in both indoor and outdoor models. Includes an intuitive dashboard and an open API for easy integration."/>
<meta name="keywords" content="Traffic Counter, Citizens, Mobility, Bike, Car, Pedestrian, Trucks, Device, Platform, Api, Verkeersteller, Burgers, Open data">
<meta property="og:image" content="https://telraam.net/images/common/og-image-s2data.jpg"/>
<meta property="og:image:width" content="1200"/>
<meta property="og:image:height" content="630"/>
</head>
<body id="body"
class="website
web.homepage
homepage "
data-locale="robotstxt">
<!-- TOPBAR -->
<header class="header">
<!-- TOPBAR #1 -->
<nav class="small-top-nav show-on-desktop-only">
<div class="nav__container">
<div class="side-head-left">
<span class="icon"></span><span class="ticket-notification" style="">Our 5th anniversary conference - 11 Sept, Leuven <a href="https://1st-floor.be/">1st Floor</a></span>
</div> <!-- side head -->
<div class="side-head">
<ul>
<li>
<a href="https://faq.telraam.net/" target="_blank">Faq & Support</a>
</li>
<li class=" ">
<a href="https://telraam.net/en/references-and-projects">References & Projects</a>
</li>
<li class=" ">
<a href="https://telraam.net/en/partners">Partners</a>
</li>
<li>
<a href="https://talks.telraam.net" target="_blank">Telraam Talks</a>
</li>
<li class=" ">
<a href="https://telraam.net/en/blog">Blog</a>
</li>
<li class=" ">
<a href="https://telraam.net/en/jobs">Jobs</a>
</li>
<li class=" ">
<a href="https://telraam.net/en/about-us">About Us</a>
</li>
<li class=" ">
<a href="https://telraam.net/en/contact-us">Contact Us</a>
</li>
<li>
<div class="dropdown languages">
<button class="button-web-nav-link">
ROBOTSTXT
</button>
<div class="dropdown-content">
<a href="#" class="js-lang-switch" data-lang="nl">NL</a>
<a href="#" class="js-lang-switch" data-lang="en">EN</a>
<a href="#" class="js-lang-switch" data-lang="fr">FR</a>
<a href="#" class="js-lang-switch" data-lang="de">DE</a>
<a href="#" class="js-lang-switch" data-lang="es">ES</a>
</div>
</div>
</li>
</ul>
</div> <!-- side head -->
</div> <!-- nav container -->
</nav>
<!-- TOPBAR #2 BIG -->
<nav class="main-nav">
<div class="nav__container">
<div class="side-head">
<div class="brand-logo-svg-container">
<div class="brand-logo-svg small"><a href="https://telraam.net" class=""></a></div>
</div>
<ul>
<li class=" active ">
<a href="https://telraam.net/robotstxt">Map</a>
</li>
<li class=" ">
<a href="https://telraam.net/robotstxt/our-traffic-counter">What is Telraam</a>
</li>
<li class="separator-left ">
<a href="https://telraam.net/robotstxt/S2">Device</a>
</li>
<li class=" ">
<a href="https://telraam.net/robotstxt/data-subscription">Data</a>
</li>
<li class="separator-right ">
<a href="https://telraam.net/robotstxt/network">Network</a>
</li>
<li class="">
<a href="https://telraam.net/robotstxt/pricing">Pricing</a>
</li>
<ul class="smaller-main-nav show-on-mobile-only">
<li>
<a href="https://faq.telraam.net/" target="_blank">Faq & Support</a>
</li>
<li class=" ">
<a href="https://telraam.net/en/references-and-projects">References & Projects</a>
</li>
<li class=" ">
<a href="https://telraam.net/en/partners">Partners</a>
</li>
<li>
<a href="https://talks.telraam.net" target="_blank">Telraam Talks</a>
</li>
<li class=" ">
<a href="https://telraam.net/en/blog">Blog</a>
</li>
<li class=" ">
<a href="https://telraam.net/en/jobs">Jobs</a>
</li>
<li class=" ">
<a href="https://telraam.net/en/about-us">About Us</a>
</li>
<li class=" ">
<a href="https://telraam.net/en/contact-us">Contact Us</a>
</li>
<li>
<div class="dropdown languages">
<button class="button-web-nav-link">
ROBOTSTXT
</button>
<div class="dropdown-content">
<a href="#" class="js-lang-switch" data-lang="nl">NL</a>
<a href="#" class="js-lang-switch" data-lang="en">EN</a>
<a href="#" class="js-lang-switch" data-lang="fr">FR</a>
<a href="#" class="js-lang-switch" data-lang="de">DE</a>
<a href="#" class="js-lang-switch" data-lang="es">ES</a>
</div>
</div>
</li>
</ul>
<!-- Authentication Links -->
<li class="">
<a class="" href="https://telraam.net/robotstxt/login">Login</a>
</li>
<li class="button-container" style="padding-left: 10px;">
<a class="button" href="https://telraam.net/robotstxt/register">Register</a>
</li>
</ul>
</div> <!-- side head -->
</div> <!-- nav container -->
</nav>
</header>
<div class="header-mobile show-on-mobile-only">
<div class="brand-logo-svg-container">
<div class="brand-logo-svg small"><a href="https://telraam.net" class=""></a></div>
</div>
</div>
<div class="m-menu">
<button class="mm"></button>
</div>
<!-- ERROR AND SUCCESS MESSAGES -->
<div class="container no-top-margin ">
<div class="content">
<div class="row justify-content-center">
<div class="map-container" style="position: relative; z-index: 0; width: 100%; height:650px; ">
<div id="loadbox" class="homepage-loadbox"><div class="loading big"></div></div>
<div id="map" style="position: relative; z-index: 0; width: 100%; height:100%; "></div>
<div class=" live-typical-button-group button-group ">
<button class="button contains-tooltip contains-tooltip-top is-active" id="js-make-live-active">
<img src="/images/icons/map/live.svg" alt="Live" title="Live">
<span class="tooltip-text">Live data from past hour.<br><br> Read more on the <a href="https://faq.telraam.net/article/390/what-do-the-different-telraam-map-layers-represent" target="_blank">FAQ</a></span>
</button>
<button class="button contains-tooltip contains-tooltip-top" id="js-make-typical-active">
<img src="/images/icons/map/history.svg" alt="Historical" title="Historical">
<span class="tooltip-text">Current and past devices visualised with their historical data.<br> Read more on the <a href="https://faq.telraam.net/article/390/what-do-the-different-telraam-map-layers-represent" target="_blank">FAQ</a></span>
</button>
<button class="button contains-tooltip contains-tooltip-top" id="js-make-relative-active">
<img src="/images/icons/map/relative.svg" alt="Relative" title="Relative">
<span class="tooltip-text">How is the live data compared to what we would expect?<br> Read more on the <a href="https://faq.telraam.net/article/390/what-do-the-different-telraam-map-layers-represent" target="_blank">FAQ</a></span>
</button>
</div>
<select id="type-select" class="home-type-select">
<option value="total"> All</option>
<option value="pedestrian"> Pedestrians</option>
<option value="bike">Two-wheelers</option>
<option value="car" selected>Cars</option>
<option value="heavy"> Heavy vehicles</option>
<option value="night"> Night</option>
<option value="V85">Speed cars V85</option>
</select>
</div>
<div class="modal-container">
</div>
</div>
<style>
.popup-title {
font-size: 13px;
margin-bottom: 8px;
font-weight: 400;
color: #393939;
text-align: center;
}
.popup-bottom {
margin-top: 10px;
font-size:9px;
color: #aaa;
}
.popup-bottom .left {
display: inline-block;
}
.popup-bottom .right {
display: inline-block;
text-align: right;
float: right;
}
.popup-bottom .button {
color: #000;
}
.color-yellow {
color: #F7D756;
}
.color-orange {
color: #F2845C;
}
.color-red {
color: #D25070;
}
.color-green {
color: #1B8C63;
}
.color-lightblue {
color: #A0D5D8;
}
</style>
<script>
// Locale
var l = window.location;
var locale = $('body').attr("data-locale");
if (typeof locale == 'undefined') {
locale = 'en';
}
var restrictedToSegmentArr = new Array();
var isNetworkView = false;
var maxTrafficRange = 1200;
var maxSpeedRange = 700;
var pedestrianDivision = 30,
bikeDivision = 10,
carDivision = 3,
heavyDivision = 20,
speedDivision = 7;
var colorLow = '#F7D756'; // almost broos
var colorLow2 = '#F2845C'; // broos
var colorLow3 = '#D25070';
var colorNormal = '#8F0DA3';
var colorNormal2 = '#5700A4';
var colorNormal3 = '#0B0564';
var colorHigh = '#000000';
var colorGreen = '#1B8C63';
var colorLightBlue = '#A0D5D8';
var colorBlue = '#0190ff'; // new blue
var hourSelected = 7;
var langReceivedLastDataPackageOnBottom = 'Last data';
var langCamaraIsNotSendingData = 'The camera does not send any data at the moment.';
var langCamaraRegisteredLastHour = 'Live measurements last hour';
var langCamaraNotUp = 'Camera is connected but does not detect movement at the moment';
var langCamaraRelative = 'Relative data';
var langRelativeDateBottom = 'Relative data for';
var langObjectsPerHour = 'objects an hour';
var langPedestrian = 'Pedestrians';
var langBike = 'Two-wheelers';
var langCar = "Cars";
var langHeavy = 'Heavy vehicles';
var langNight = 'Night';
var langCameraShownAfterFullDay = 'We haven't received any counting data yet, please be patient.';
var langHour = 'h';
var langSpeed = 'Speed cars';
var langTypical = 'Typical for a';
var langAt = 'at ';
var langInfo = 'Typical traffic calculated over a year ending on';
var drukteScale = ['zeer lage drukte', 'lage drukte',
'gemiddelde drukte', 'kleine drukte',
'hoge drukte', 'zeer hoge drukte'];
var sigmaLimits = new Array();
const colorScale = [colorLow, colorLow2, colorLow3, colorNormal, colorNormal2, colorNormal3, colorHigh];
const daysOfWeek = ['Monday', 'Tuesday', 'Wednesday', 'Thursday', 'Friday', 'Saturday', 'Sunday'];
"use strict";
// set map height
var type = 'car';
var mode = 'live';
var hourSelected = '0';
var playing = false;
var thePlayingInterval;
var scrollDisable = 0;
var embed = false;
var headerHeight = 50;
if (embed == true) {
headerHeight = 0;
}
var windowHeight = $(window).innerHeight();
var mapHeight = windowHeight - headerHeight;
var telraamActiveCount = 0;
var telraamHistoryCount = 0;
var telraamActiveCountSentence = 'Telraam devices counting now';
var telraamHistoryCountSentence = 'Telraam devices with their typical values';
telraamActiveCount = 3331;
telraamHistoryCount = 9533;
$('.map-container').css('height', mapHeight);
var modalCount = 0;
var isTouchDevice = window.ontouchstart !== undefined;
// add to the dom
function createNewModalDiv(number, id) {
var foundModal = $(".modal-container").find('[data-id='+id+']');
if (foundModal.length) {
// bring the existing one to the front
$(foundModal).animate({right:0}, "fast");
var countModals = $('.modal-container .modal').length;
$(foundModal).insertAfter($('.modal-container .modal').last());
} else {
var widthPosition = 0;
var modalContent = '<div class="modal" id="modal-container-' + number + '" data-id=' + id +' style="display: none; right:0px">'
modalContent += '<div class="lds-ellipsis-container"><div class="lds-ellipsis"><div></div><div></div><div></div><div></div></div></div>';
modalContent += '</div>';
$( ".modal-container" ).append( modalContent );
}
reOrderModalDivs();
}
// reorder dom after modification
function reOrderModalDivs() {
var countModals = $('.modal-container .modal').length;
$( ".modal-container .modal" ).each(function( index ) {
var pos = index + 1;
var rightPos = (countModals - pos) * 20
$(this).animate({right:rightPos}, "slow");
// $(this).css({right: rightPos });
});
}
// put existing modal again on top: change position in dom
$('.modal-container').on("click", ".side-title-container", function (e) {
// bring to front
$(this).parent().animate({right:0}, "fast");
var countModals = $('.modal-container .modal').length;
$(this).parent().insertAfter($('.modal-container .modal').last());
// reorder
reOrderModalDivs();
});
// put existing modal again on top: change position in dom
$('.modal-container').on("click", ".close-icon", function (e) {
// remove
$(this).parent().remove();
// reorder
reOrderModalDivs();
});
function openNewDetailModal(id) {
if (embed == false) {
modalCount++;
createNewModalDiv(modalCount, id);
$("#modal-container-" + modalCount).show();
$("#modal-container-" + modalCount).load("/" + locale + "/location-modal/" + id, function () {
});
}
}
// var map = L.map('map').setView([50.888940, 4.720720], 14);
var map = L.map('map').setView([55.7386, 37.6068], 9);
var hash = new L.Hash(map); // make the url have coordinates
// ----- SEARCH https://github.com/perliedman/leaflet-control-geocoder/tree/master
var geocoder = L.Control.geocoder({
defaultMarkGeocode: false,position: 'topleft'
}).on('markgeocode', function(e) {
var bbox = e.geocode.bbox;
var poly = L.polygon([
bbox.getSouthEast(),
bbox.getNorthEast(),
bbox.getNorthWest(),
bbox.getSouthWest()
]).addTo(map);
poly.setStyle({display: 'none', fillColor: '#a0d5d8', opacity: 0.1, borderWidth: 0});
map.fitBounds(poly.getBounds());
map.removeLayer(poly);
}).addTo(map);
// Night and Day on Earth
if (scrollDisable == true) {
map.scrollWheelZoom.disable();
}
var osmUrl = 'https://cartodb-basemaps-{s}.global.ssl.fastly.net/light_all/{z}/{x}/{y}.png';
var osmAttrib = '© OpenStreetMap | Telraam';
L.tileLayer.grayscale(osmUrl, {minZoom: 0, maxZoom: 18, attribution: osmAttrib}).addTo(map);
L.terminator({fillOpacity: 0.2}).addTo(map);
var routeStyle = {
color: "#CCCCCC",
weight: 6,
opacity: 0.7 ,
fillColor: "#2262CC",
hoverColor: "#ffccaa"
};
// https://stackoverflow.com/questions/14819058/mixing-two-colors-naturally-in-javascript
function colorChannelMixer(colorChannelA, colorChannelB, amountToMix){
var channelA = colorChannelA*amountToMix;
var channelB = colorChannelB*(1-amountToMix);
return parseInt(channelA+channelB);
}
function parseDate(s) {
var stringFormat = s.substring(0,19);
var b = stringFormat.split(/\D+/);
return new Date(Date.UTC(b[0], --b[1], b[2], b[3], b[4], b[5])).toUTCString();
}
function onEachFeature(feature, layer) {
$('#loadbox').hide();
// TRAFFIC: words
var totalCounts = feature.properties.pedestrian + feature.properties.bike + feature.properties.car + feature.properties.heavy;
if(mode == 'live') {
routeStyle.color = getColor(feature.properties.pedestrian, feature.properties.bike, feature.properties.car, feature.properties.heavy, feature.properties.night, feature.properties.v85, feature.properties.last_data_package, 'car', mode, feature.properties.uptime);
routeStyle.opacity = '0.8';
} else if(mode == 'typical') {
routeStyle.color = getColor(feature.properties.avg_pedestrian, feature.properties.avg_bike, feature.properties.avg_car, feature.properties.avg_heavy, feature.properties.avg_night, feature.properties.avg_v85, false, 'total', mode, feature.properties.uptime);
routeStyle.opacity = '0.8';
} else {
routeStyle.color = getColorRelative(feature.properties.band_pedestrian, feature.properties.band_bike, feature.properties.band_car, feature.properties.band_heavy, feature.properties.band_night, feature.properties.band_v85, feature.properties.band_total, 'total');
routeStyle.opacity = '0.8';
}
// NETWORK VIEW: show all or not?
if (isNetworkView == true) {
if (!restrictedToSegmentArr.includes(feature.properties.segment_id)) {
// return false;
routeStyle.color = '#efefef';
routeStyle.opacity = '0.4';
}
}
if(mode == 'typical' && (feature.properties.avg_pedestrian == null && feature.properties.avg_bike == null && feature.properties.avg_car == null)) {
routeStyle.color = '#aaa';
routeStyle.opacity = '0.8';
}
var minutesDifference = 0
if ((feature.properties.last_data_package !== null && feature.properties.last_data_package !== '') && mode == 'live') {
var dateCameraPackage = parseDate(feature.properties.last_data_package); // UTC
var dateCameraPackageFmt = moment(dateCameraPackage).tz(feature.properties.timezone).format('DD-MM-YYYY HH:mm');
var dateCameraPackageFmtViewerTimezone = moment(dateCameraPackage).local().format('DD-MM-YYYY HH:mm');
// check time difference last package and compare both on utc timezone
minutesDifference = calcultateDifferenceInMinutes(dateCameraPackage);
}
if ((feature.properties.data !== null && feature.properties.last_data_package !== '') && mode == 'relative') {
// var dateRelativeFmt = moment(feature.properties.date).format('DD-MM-YYYY HH:mm');
var dateRelativeFmt = moment.utc(feature.properties.date).local().format('DD-MM-YYYY HH:mm');
}
var popupContent = '<div class="popup-title">' + langCameraShownAfterFullDay+"</div><br><div class=popup-bottom><div class='left'></div><div class='right'>" + feature.properties.segment_id + "</div></div>"; ;
if (minutesDifference > 60 && mode !== 'relative') {
// old package
popupContent = '<div class="popup-title grey text-center">' + langCamaraIsNotSendingData+'</div><br>' +
"<div class=popup-bottom><div class='left'>"+langRelativeDateBottom+" <b>" + dateRelativeFmt +"</b></div><div class='right'>" + feature.properties.segment_id + "</div></div>";
} else {
// fresh package
if (mode == 'relative') {
if(feature.properties.sigma_pedestrian !== null) {
var sigmaPedestrian = Math.round(feature.properties.sigma_pedestrian * 10) / 10 + ' σ';
if(feature.properties.sigma_pedestrian > 0) {
sigmaPedestrian = '+ '+sigmaPedestrian;
}
} else {
var sigmaPedestrian = '';
}
if(feature.properties.sigma_bike !== null) {
var sigmaBike = Math.round(feature.properties.sigma_bike * 10) / 10 + ' σ';
if(feature.properties.sigma_bike > 0) {
sigmaBike = '+ '+sigmaBike;
}
} else {
var sigmaBike = '';
}
if(feature.properties.sigma_car !== null) {
var sigmaCar = Math.round(feature.properties.sigma_car * 10) / 10 + ' σ';
if(feature.properties.sigma_car > 0) {
sigmaCar = '+ '+sigmaCar;
}
} else {
var sigmaCar = '';
}
if(feature.properties.sigma_heavy !== null) {
var sigmaHeavy = Math.round(feature.properties.sigma_heavy * 10) / 10 + ' σ';
if(feature.properties.sigma_heavy > 0) {
sigmaHeavy = '+ '+sigmaHeavy;
}
} else {
var sigmaHeavy = '';
}
if(feature.properties.sigma_night !== null) {
var sigmaNight = Math.round(feature.properties.sigma_night * 10) / 10 + ' σ';
if(feature.properties.sigma_night > 0) {
sigmaNight = '+ '+sigmaNight;
}
} else {
var sigmaNight = '';
}
if(feature.properties.sigma_v85 !== null) {
var sigmaV85 = Math.round(feature.properties.sigma_v85 * 10) / 10 + ' σ';
if(feature.properties.sigma_v85 > 0) {
sigmaV85 = '+ '+sigmaV85;
}
} else {
var sigmaV85 = Math.round(feature.properties.sigma_v85 * 10) / 10 + ' σ';
}
popupContent = '<div class="popup-title">' + langCamaraRelative + "</div>" +
"<table class='popup' style='padding:2px; margin:0;'><tr>" +
"<td class='pedestrian-s'><span class=\"icon icon-pedestrian\"></span><span class='number-popup'>" + sigmaPedestrian + " </span></td>" +
"<td class='bike-s'><span class=\"icon icon-bike\"></span><span class='number-popup'>" + sigmaBike + " </span><td></tr>" +
"<tr class='no-border'>" +
"<td class='car-s'><span class=\"icon icon-car\"></span><span class='number-popup'>" + sigmaCar + " </span></td>" +
"<td class='heavy-s'><span class=\"icon icon-lorry\"></span><span class='number-popup'>" + sigmaHeavy + "</span><td></tr>" +
"<tr class='no-border'>" +
"<td class='car-s'><span class=\"icon icon-night\"></span><span class='number-popup'>" + sigmaNight + " </span></td>" +
"<td class='car-s'><span class=\"icon icon-speed-85\"></span><span class='number-popup'>" + sigmaV85 + " </span></td>" +
"<td></td>" +
"</tr>" +
"</table>" +
"<div class=popup-bottom><div class='left'>"+langRelativeDateBottom+" <b>" + dateRelativeFmt +"</b></div><div class='right'>" + feature.properties.segment_id + "</div></div>";
}
if (mode == 'live') {
if (feature.properties.car !== null) {
// normal or night/problematic
var nightprop = '-';
if (isNumber(feature.properties.night)) {
nightprop = Math.round(feature.properties.night);
}
if (feature.properties.uptime > 0) {
popupContent = '<div class="popup-title">' + langCamaraRegisteredLastHour + "</div>" +
"<table class='popup' style='padding:2px; margin:0;'><tr>" +
"<td class='pedestrian-s'><span class=\"icon icon-pedestrian\"></span><span class='number-popup'>" + Math.round(feature.properties.pedestrian) + "</span></td>" +
"<td class='bike-s'><span class=\"icon icon-bike\"></span><span class='number-popup'>" + Math.round(feature.properties.bike) + "</span><td></tr>" +
"<tr class='no-border'>" +
"<td class='car-s'><span class=\"icon icon-car\"></span><span class='number-popup'>" + Math.round(feature.properties.car) + "</span></td>" +
"<td class='heavy-s'><span class=\"icon icon-lorry\"></span><span class='number-popup'>" + Math.round(feature.properties.heavy) + "</span><td></tr>" +
"<tr class='no-border'>" +
"<td class='car-s'><span class=\"icon icon-night\"></span><span class='number-popup'>" + nightprop + "</span></td>" +
"<td class='car-s'><span class=\"icon icon-speed-85\"></span><span class='number-popup'>" + Math.round(feature.properties.v85) + "<span style='font-size:9px; font-weight: 400; letter-spacing: 0; color: #aaa;'> km/"+langHour+"</span></td>" +
"</tr>" +
"</table>" +
"<div class=popup-bottom><div class='left'>"+langReceivedLastDataPackageOnBottom+" <b>" + dateCameraPackageFmtViewerTimezone + "</b></div><div class='right'>" + feature.properties.segment_id + "</div></div>";
} else {
var popupContent = '<div class="moon icon"></div><div class="popup-title">' + langCamaraNotUp + "</div>" +
"<div class=popup-bottom><div class='left'>"+langReceivedLastDataPackageOnBottom+" <b>" + dateCameraPackageFmtViewerTimezone + "</b></div><div class='right'>" + feature.properties.segment_id + "</div></div>";
}
} else {
// we had recent signal but no data and uptime
var popupContent = '<div class="popup-title">' + langCamaraNotUp + '</div><br>'+
"<div class=popup-bottom><div class='left'>"+langReceivedLastDataPackageOnBottom+" <b>" + dateCameraPackageFmtViewerTimezone + "</b></div><div class='right'>" + feature.properties.segment_id + "</div></div>";
}
}
if (mode == 'typical') {
var DofW = feature.properties.day_of_week;
var DofWLong = '';
if(DofW == 'mon') { DofWLong = daysOfWeek[0]; }
if(DofW == 'tue') { DofWLong = daysOfWeek[1]; }
if(DofW == 'wed') { DofWLong = daysOfWeek[2]; }
if(DofW == 'thu') { DofWLong = daysOfWeek[3]; }
if(DofW == 'fri') { DofWLong = daysOfWeek[4]; }
if(DofW == 'sat') { DofWLong = daysOfWeek[5]; }
if(DofW == 'sun') { DofWLong = daysOfWeek[6]; }
var ped = '-';
var bike = '-';
var car = '-';
var heavy = '-';
var night = '-';
var v85 = '- ';
var footerSentence = ' ';
if(feature.properties.avg_pedestrian !== null) { ped = Math.round(feature.properties.avg_pedestrian); }
if(feature.properties.avg_bike !== null) { bike = Math.round(feature.properties.avg_bike); }
if(feature.properties.avg_car !== null) { car = Math.round(feature.properties.avg_car); }
if(feature.properties.avg_heavy !== null) { heavy = Math.round(feature.properties.avg_heavy); }
if(feature.properties.avg_night !== null) { night = Math.round(feature.properties.avg_night); }
if(feature.properties.avg_v85 !== null) { v85 = Math.round(feature.properties.avg_v85); }
if(feature.properties.avg_pedestrian !== null && feature.properties.avg_bike !== null && feature.properties.avg_car !== null) {
footerSentence = langInfo +" "+feature.properties.time_end.slice(0, 10) + '.';
}
popupContent = '<div class="popup-title">'+langTypical+' '+ DofWLong + ' '+langAt+' '+feature.properties.time.slice(0, 2) +'h </div>' +
"<table class='popup' style='padding:2px; margin:0;'><tr>" +
"<td class='pedestrian-s'><span class=\"icon icon-pedestrian\"></span><span class='number-popup'>"+ ped + "</span></td>" +
"<td class='bike-s'><span class=\"icon icon-bike\"></span><span class='number-popup'>" + bike + "</span><td></tr>" +
"<tr class='no-border'>" +
"<td class='car-s'><span class=\"icon icon-car\"></span><span class='number-popup'>" + car + "</span></td>" +
"<td class='heavy-s'><span class=\"icon icon-lorry\"></span><span class='number-popup'>" + heavy + "</span><td></tr>" +
"<tr class='no-border'>" +
"<td class='car-s'><span class=\"icon icon-night\"></span><span class='number-popup'>" + night + "</span></td>" +
"<td class='car-s'><span class=\"icon icon-speed-85\"></span><span class='number-popup'>" + v85 + "<span style='font-size:9px; font-weight: 400; letter-spacing: 0; color: #aaa;'> km/"+langHour+"</span></td>" +
"</tr>" +
"</table>" +
"<div class=popup-bottom><div class='left'>" +footerSentence+ "<br>" + feature.properties.segment_id + "</div>";
}
}
layer.setStyle(routeStyle);
if (embed == true) {
popupContent += '<a href="https://telraam.net/en/location/'+feature.properties.segment_id+'" class="grey button" style="margin-top: 10px;" target="_blank">Open</a>'
}
layer.bindPopup(popupContent, { autoPan: false });
layer.on("mouseover", function (e) {
layer.setStyle({ weight: 10, opacity: 1 });
this.openPopup();
});
layer.on("mouseout", function (e) {
layer.setStyle({ weight: 6, opacity: 0.7 });
// layer.setStyle({ opacity: 0 });
if (embed == false) {
this.closePopup(); // when no embed and open btn leave do not close immediatly
}
});
if (embed == false) {
layer.on('click', function (e) {
openNewDetailModal(e.target.feature.properties.segment_id);
});
}
if (isTouchDevice) {
layer.on('mouseover', function (e) {
openNewDetailModal(e.target.feature.properties.segment_id);
});
} else {
layer.on('click tap', function (e) {
openNewDetailModal(e.target.feature.properties.segment_id);
});
}
layer.on("add", function(e){
L.path.touchHelper(this, {extraWeight: 20}).addTo(map);
});
}
var urlLive = 'https://telraam.net/api/segments/snapshot/traffic';
var urlTypical = 'https://telraam.net/api/segments/snapshot/typical';
var urlRelative = 'https://telraam.net/api/segments/snapshot/relative';
var geojsonLayer;
function loadMap() {
if(mode == 'live') {
url = urlLive;
} else if (mode == 'typical') {
url = urlTypical;
} else {
url = urlRelative;
}
geojsonLayer = new L.GeoJSON.AJAX(url,{
dataType: 'json',
onEachFeature: onEachFeature,
}).addTo(map);
}
loadMap();
// ----- LEGEND RIGHT
var legend = L.control({position: 'bottomright'});
legend.onAdd = function (map) {
var div = L.DomUtil.create('div', 'info legend'),
maxTrafficRange = 1200,
maxSpeedRange = 700,
pedestrianDivision = 30,
bikeDivision = 10,
carDivision = 3,
heavyDivision = 20,
speedDivision = 7;
// loop through our density intervals and generate a label with a colored square for each interval
// --- TOTAL
var number = Math.round( (maxTrafficRange/7) * i ) ;
div.innerHTML +=
'<div class="total mode-live-typical"><i style="background: '+colorScale[0]+ ';" class="color"></i> 0' + ' / '+ langHour+ '</div>' +
'<div class="total mode-live-typical"><i style="background: '+colorScale[1]+ ';" class="color"></i> 50' + ' / '+ langHour+ '</div>' +
'<div class="total mode-live-typical"><i style="background: '+colorScale[2]+ ';" class="color"></i> 100' + ' / '+ langHour+ '</div>' +
'<div class="total mode-live-typical"><i style="background: '+colorScale[3]+ ';" class="color"></i> 200' + ' / '+ langHour+ '</div>' +
'<div class="total mode-live-typical"><i style="background: '+colorScale[4]+ ';" class="color"></i> 500' + ' / '+ langHour+ '</div>' +
'<div class="total mode-live-typical"><i style="background: '+colorScale[5]+ ';" class="color"></i> 1000' + ' / '+ langHour+ '</div>' +
'<div class="total mode-live-typical"><i style="background: '+colorScale[6]+ ';" class="color"></i> 2000' + ' / '+ langHour+ '</div>';
for (var i = 0; i < 7; i++) {
// --- PEDESTRIAN SELECTED
var number = [0, 5, 10, 15, 20, 25, 30][i];
div.innerHTML +=
'<div class="type-pedestrian mode-live-typical" style="display:none"><i style="background: '+colorScale[i]+ ';" class="color "></i> ' + number + ' / '+ langHour+ '</div>';
// --- BIKE SELECTED
var number = [0, 20, 40, 60, 80, 100, 120][i];
div.innerHTML +=
'<div class="type-bike mode-live-typical" style="display:none"><i style="background: '+colorScale[i]+ ';" class="color "></i> ' + number + ' / '+ langHour+ '</div>';
// --- CAR SELECTED
var number = [0, 50, 100, 150, 200, 250, 300][i];
div.innerHTML +=
'<div class="type-car mode-live-typical" style="display:none"><i style="background: '+colorScale[i]+ ';" class="color "></i> ' + number + ' / '+ langHour+ '</div>';
// --- HEAVY SELECTED
var number = [0, 10, 20, 30, 40, 50, 60][i];
div.innerHTML +=
'<div class="type-heavy mode-live-typical" style="display:none"><i style="background: '+colorScale[i]+ ';" class="color "></i> ' + number + ' / '+ langHour+ '</div>';
// --- V85 SELECTED
var number = [0, 15, 30, 45, 60, 75, 90][i];
div.innerHTML +=
'<div class="type-v85 mode-live-typical" style="display:none"><i style="background: '+colorScale[i]+ ';" class="color "></i> ' + number + ' km / '+ langHour+ '</div>';
}
div.innerHTML +=
'<div class="mode-relative" style="display:none; padding-bottom: 5px;"><i style="background: '+colorBlue + ';" class="color"></i> Very low </div>' +
'<div class="mode-relative" style="display:none; padding-bottom: 5px;"><i style="background: '+colorLightBlue+ ';" class="color"></i> Low</div>' +
'<div class="mode-relative" style="display:none; padding-bottom: 5px;"><i style="background: '+colorGreen+ ';" class="color"></i> Normal</div>' +
'<div class="mode-relative" style="display:none; padding-bottom: 5px;"><i style="background: '+colorLow+ ';" class="color"></i> High</div>' +
'<div class="mode-relative" style="display:none; padding-bottom: 5px;"><i style="background: '+colorLow3+ ';" class="color"></i> Very high</div>';
return div;
};
legend.addTo(map);
doShowCorrectLegend(type, mode);
// ----- LEGEND INFO LEFT
if (embed == false) {
var legendActivity = L.control({position: 'bottomleft'});
legendActivity.onAdd = function (map) {
var div = L.DomUtil.create('div', 'legend-activity-left');
div.innerHTML = '<span class="number" id="legendNumberCount">' + telraamActiveCount + '</span><span class="sentence" id="legendNumberSentence">' + telraamActiveCountSentence + '</span>';
return div;
};
legendActivity.addTo(map);
}
function doShowCorrectLegend(typeL, modeL) {
if(modeL == 'live' || modeL == 'typical') {
$('.legend .mode-relative').hide();
if (typeL == 'total') {
$('.legend .total').show();
$('.legend .type-pedestrian').hide();
$('.legend .type-bike').hide();
$('.legend .type-car').hide();
$('.legend .type-heavy').hide();
$('.legend .type-v85').hide();
}
if (typeL == 'pedestrian') {
$('.legend .total').hide();
$('.legend .type-pedestrian').show();
$('.legend .type-bike').hide();
$('.legend .type-car').hide();
$('.legend .type-heavy').hide();
$('.legend .type-v85').hide();
}
if (typeL == 'bike') {
$('.legend .total').hide();
$('.legend .type-pedestrian').hide();
$('.legend .type-bike').show();
$('.legend .type-car').hide();
$('.legend .type-heavy').hide();
$('.legend .type-v85').hide();
}
if (typeL == 'car') {
$('.legend .total').hide();
$('.legend .type-pedestrian').hide();
$('.legend .type-bike').hide();
$('.legend .type-car').show();
$('.legend .type-heavy').hide();
$('.legend .type-v85').hide();
}
if (typeL == 'heavy') {
$('.legend .total').hide();
$('.legend .type-pedestrian').hide();
$('.legend .type-bike').hide();
$('.legend .type-car').hide();
$('.legend .type-heavy').show();
$('.legend .type-v85').hide();
}
if (typeL == 'V85') {
$('.legend .total').hide();
$('.legend .type-pedestrian').hide();
$('.legend .type-bike').hide();
$('.legend .type-car').hide();
$('.legend .type-heavy').hide();
$('.legend .type-v85').show();
}
} else {
// relative
$('.legend .mode-live-typical').hide();
$('.legend .mode-relative').show();
}
}
$( "#type-select" ).change(function() {
type = this.value;
doShowCorrectLegend(type, mode)
doTheColoring();
});
function doTheColoring() {
geojsonLayer.eachLayer(function(layer) {
if (isNetworkView == true && !restrictedToSegmentArr.includes(layer.feature.properties.segment_id)) {
// return false;
routeStyle.color = '#efefef';
routeStyle.opacity = '0.4';
} else {
if(mode == 'live') {
routeStyle.color = getColor(layer.feature.properties.pedestrian,
layer.feature.properties.bike,
layer.feature.properties.car,
layer.feature.properties.heavy,
layer.feature.properties.night,
layer.feature.properties.v85,
layer.feature.properties.last_data_package,
type,
mode,
layer.feature.properties.uptime
);
routeStyle.opacity = '0.9';
}
if(mode == 'typical') {
routeStyle.color = getColor(layer.feature.properties.avg_pedestrian,
layer.feature.properties.avg_bike,
layer.feature.properties.avg_car,
layer.feature.properties.avg_heavy,
layer.feature.properties.avg_night,
layer.feature.properties.avg_v85,
false,
type,
mode,
layer.feature.properties.uptime
);
routeStyle.opacity = '0.8';
}
if(mode == 'relative') {
routeStyle.color = getColorRelative(layer.feature.properties.band_pedestrian,
layer.feature.properties.band_bike,
layer.feature.properties.band_car,
layer.feature.properties.band_heavy,
layer.feature.properties.band_night,
layer.feature.properties.band_v85,
layer.feature.properties.band_total,
type,
);
routeStyle.opacity = '0.8';
}
}
layer.setStyle(routeStyle);
});
}
function getColor(pedestrian, bike, car, heavy, night, v85, dataPackage, type, mode, uptime){
if (type == 'total') {
var specCounts = pedestrian + bike + car + heavy + night;
}
if (type == 'pedestrian') {
var specCounts = pedestrian;
}
if (type == 'bike') {
var specCounts = bike;
}
if (type == 'car') {
var specCounts = car;
}
if (type == 'heavy') {
var specCounts = heavy;
}
if (type == 'night') {
var specCounts = night;
}
if (type == 'V85') {
var specCounts = v85;
}
if ((dataPackage == null || dataPackage == '' ) && mode == 'live') {
// no data yet
return "#E2E6E9";
} else {
minutesDifference = 61;
if (dataPackage !== '' && mode == 'live') {
var dateCameraPackage = parseDate(dataPackage);
var minutesDifference = calcultateDifferenceInMinutes(dateCameraPackage);
}
// down
if (minutesDifference > 60 && mode == 'live') {
return "#E2E6E9"; // light grey
}
// night
if (uptime == 0) {
return "#B9C2CA";
}
if (type == 'total') {
// var range = (100 / maxTrafficRange) * specCounts;
rangeIndex = 0;
if (specCounts > 49) {
rangeIndex = 1;
}
if (specCounts > 99) {
rangeIndex = 2;
}
if (specCounts > 199) {
rangeIndex = 3;
}
if (specCounts > 499) {
rangeIndex = 4;
}
if (specCounts > 999) {
rangeIndex = 5;
}
if (specCounts > 1999) {
rangeIndex = 6;
}
} else {
if (type == 'pedestrian') {
rangeIndex = 0;
if (specCounts > 4) rangeIndex = 1;
if (specCounts > 9) rangeIndex = 2;
if (specCounts > 14) rangeIndex = 3;
if (specCounts > 19) rangeIndex = 4;
if (specCounts > 24) rangeIndex = 5;
if (specCounts > 29) rangeIndex = 6;
return colorScale[rangeIndex];
}
if (type == 'bike') {
rangeIndex = 0;
if (specCounts > 19) rangeIndex = 1;
if (specCounts > 39) rangeIndex = 2;
if (specCounts > 59) rangeIndex = 3;
if (specCounts > 79) rangeIndex = 4;
if (specCounts > 99) rangeIndex = 5;
if (specCounts > 119) rangeIndex = 6;
return colorScale[rangeIndex];
}
if (type == 'car') {
rangeIndex = 0;
if (specCounts > 49) rangeIndex = 1;
if (specCounts > 99) rangeIndex = 2;
if (specCounts > 149) rangeIndex = 3;
if (specCounts > 199) rangeIndex = 4;
if (specCounts > 249) rangeIndex = 5;
if (specCounts > 299) rangeIndex = 6;
return colorScale[rangeIndex];
}
if (type == 'heavy') {
rangeIndex = 0;
if (specCounts > 9) rangeIndex = 1;
if (specCounts > 19) rangeIndex = 2;
if (specCounts > 29) rangeIndex = 3;
if (specCounts > 39) rangeIndex = 4;
if (specCounts > 49) rangeIndex = 5;
if (specCounts > 59) rangeIndex = 6;
return colorScale[rangeIndex];
}
if (type == 'night') {
var division = carDivision;
var range = (100 / (maxTrafficRange/division)) * specCounts;
}
if (type == 'V85') {
rangeIndex = 0;
if (specCounts > 14) rangeIndex = 1;
if (specCounts > 29) rangeIndex = 2;
if (specCounts > 44) rangeIndex = 3;
if (specCounts > 59) rangeIndex = 4;
if (specCounts > 74) rangeIndex = 5;
if (specCounts > 89) rangeIndex = 6;
return colorScale[rangeIndex];
}
if (range > 100) {
range = 100;
}
// var rangeIndex = Math.round((8 / 100) * range) ;
var rangeIndex = (Math.floor((7 / 100) * range)) ;
if (rangeIndex < 0) {
rangeIndex = 0;
}
if (rangeIndex > 6) {
rangeIndex = 6;
}
}
var color = colorScale[rangeIndex];
return color;
}
}
function getColorRelative(pedestrian, bike, car, heavy, night, v85, total, type){
var color = 'grey';
var colorrgb = '#cccccc';
if (type == 'total') {
color = total;
}
if (type == 'pedestrian') {
color = pedestrian;
}
if (type == 'bike') {
color = bike;
}
if (type == 'car') {
color = car;
}
if (type == 'heavy') {
color = heavy;
}
if (type == 'night') {
color = night;
}
if (type == 'V85') {
color = v85;
}
if(color == 'yellow') {
colorrgb = colorLow;
}
if(color == 'red') {
colorrgb = colorLow3;
}
if(color == 'green') {
colorrgb = colorGreen;
}
if(color == 'lightblue') {
colorrgb = colorLightBlue;
}
if(color == 'blue') {
colorrgb = colorBlue;
}
return colorrgb;
}
$("#js-make-live-active").on('click', function(e) {
if(mode == 'typical' || mode == 'relative') {
$('#loadbox').show();
mode = 'live';
removeOldLayers();
$('#js-make-typical-active').removeClass('is-active');
$('#js-make-relative-active').removeClass('is-active');
$(this).addClass('is-active');
loadMap();
doTheColoring();
$('#legendNumberCount').html(telraamActiveCount)
$('#legendNumberSentence').html(telraamActiveCountSentence);
doShowCorrectLegend(type, mode)
}
});
$("#js-make-typical-active").on('click', function(e) {
if(mode == 'live' || mode == 'relative') {
$('#loadbox').show();
mode = 'typical';
removeOldLayers();
$('#js-make-live-active').removeClass('is-active');
$('#js-make-relative-active').removeClass('is-active');
$(this).addClass('is-active');
loadMap();
doTheColoring();
$('#legendNumberCount').html(telraamHistoryCount)
$('#legendNumberSentence').html(telraamHistoryCountSentence);
doShowCorrectLegend(type, mode)
}
});
$("#js-make-relative-active").on('click', function(e) {
if(mode == 'live' || mode == 'typical') {
$('#loadbox').show();
mode = 'relative';
removeOldLayers();
$('#js-make-live-active').removeClass('is-active');
$('#js-make-typical-active').removeClass('is-active');
$(this).addClass('is-active');
loadMap();
doTheColoring();
$('#legendNumberCount').html(telraamActiveCount)
$('#legendNumberSentence').html(telraamActiveCountSentence);
doShowCorrectLegend(type, mode)
}
});
function removeOldLayers() {
var countRem = 0;
map.eachLayer(function(layer) {
if (!!layer.toGeoJSON) {
map.removeLayer(layer);
}
});
}
/**
* Store the transition end event names for convenience.
*/
var transitionEnd = 'transitionend webkitTransitionEnd oTransitionEnd MSTransitionEnd';
function round(n, dp) {
h = +('1'.padEnd(dp + 1, '0')) // 10 or 100 or 1000 or etc
return Math.round(n * h) / h
}
function calcultateDifferenceInMinutes(dateCameraPackage) {
var packageDateMs = moment(dateCameraPackage).valueOf(); // UTC
var nowDateMs = moment().utc().valueOf(); // UTC
// just for testing with old json
// var dateNow = parseDate('2022-07-07 09:21:40.367900+00:00'); // just for testing
// nowDateMs = moment(dateNow).utc().valueOf(); // just for testing
var milliSecondsDiff = nowDateMs-packageDateMs;
var minutesDifference = (milliSecondsDiff/60/60/24);
return minutesDifference;
}
function isNumber(value) {
return typeof value === 'number';
}
</script>
</div>
</div>
<!-- Analytics -->
<script defer data-domain="telraam.net" src="https://plausible.io/js/plausible.js"></script>
<!-- extra scripts: livewire, for now only traffic-scout -->
<footer class="site-footer no-top-margin " >
<div class="block">
<div class="grid stackable">
<div class="col-desk-4 col-tab-3">
<h2 class="footer-accent">Telraam</h2>
Vital Decosterstraat 67A bus 1010, 3000 Leuven - Belgium<br>
<br>
<strong>AI-powered, privacy-friendly traffic counters for pedestrians, cyclists, cars, and heavy vehicles — available in both indoor and outdoor models. Includes an intuitive dashboard and an open API for easy integration.</strong><br>
<br>
<strong>General questions</strong>: <a href="mailto:info@telraam.net">info@telraam.net</a><br>
<strong>Technical questions</strong>: <a href="mailto:support@telraam.net">support@telraam.net</a><br>
<br>
Telraam is fully owned and maintained by Rear Window BV (BE0762.549.266)<br>
<br>
<img src="https://telraam.net/images/common/eit-urban-mobility.svg" style="max-width: 200px">
<p style="font-size: 0.7em; line-height: 1.3em; margin-top: 0.5em;">This project is supported by EIT Urban Mobility, an initiative of the European Institute of Innovation and Technology (EIT), a body of the European Union</p>
</div>
<div class="col-desk-3 col-tab-3">
<h2 class="footer-accent">Sitemap</h2>
<ul>
<li>
<a href="https://telraam.net/robotstxt/" class="">Map</a>
</li>
<li class=" ">
<a href="https://telraam.net/robotstxt/what-is-telraam">What is Telraam</a>
</li>
<li class="separator-left ">
<a href="https://telraam.net/robotstxt/S2">Device</a>
</li>
<li class=" ">
<a href="https://telraam.net/robotstxt/data-subscription">Data</a>
</li>
<li class="separator-right ">
<a href="https://telraam.net/robotstxt/network">Network</a>
</li>
<li class="">
<a href="https://telraam.net/robotstxt/shop">Pricing</a>
</li>
<li>
<a href="https://faq.telraam.net/" target="_blank">Faq & Support</a>
</li>
<li>
<a href="https://telraam.net/robotstxt/blog">Blog</a>
</li>
<li>
<a href="https://press-kit.helpspace-docs.io/article/227/press-kit-english" target="_blank">Press Kit</a>
</li>
<li>
<a href="https://telraam-api.net/" class="">Telraam API</a>
</li>
</ul>
<br>
<ul>
<li>
<a href="https://telraam.net/robotstxt/privacy-policy" class="">Privacy Policy</a>
</li>
<li>
<a href="https://telraam.net/robotstxt/cookie-policy" class="">Cookie Policy</a>
</li>
<li>
<a href="https://telraam.net/robotstxt/terms-of-use" class="">Terms of Use</a>
</li>
<li>
<a href="https://telraam.net/downloads/RearWindow-BusinessTerms-EN.pdf" class="">Business Terms</a>
</li>
</ul>
<br><br>
</div>
<div class="col-desk-5 col-tab-6">
<h2 class="footer-accent">Sign up for our mailing list:</h2>
<form
action="https://telraam.mailcoach.app/subscribe/4d28db41-86c4-45e6-bdf8-f75dcefc8010"
method="post"
>
<div class="grid grid-with-row-margin email-form stackable" style="margin-bottom: 15px;">
<div class="col-desk-3 col" style="">
<input type="text" name="first_name" placeholder="First Name" required >
</div>
<div class="col-desk-4 col" style="">
<input type="text" name="last_name" placeholder="Surname" required >
</div>
<div class="col-desk-5 col">
<input type="email" value="" name="email" class="required email" placeholder="Email" required>
</div>
<div class="col-desk-3" style="margin-top: 0">
<input type="radio" id="citizen" name="list" value="4d28db41-86c4-45e6-bdf8-f75dcefc8010" checked />
<label for="citizen">Citizen</label>
</div>
<div class="col-desk-6" style="margin-top: 0">
<input type="radio" id="org" name="list" value="a40961d5-3ad8-4ce7-be64-2b6f0f24b7ea" />
<label for="org">Organisation / Professional</label>
</div>
<div class="col-desk-3" style="margin-top: 0">
<input type="radio" id="org" name="list" value="6d160603-f6a2-466b-99b3-09669acdaa8d" />
<label for="org">Press</label>
</div>
<div class="col-desk-12" style="margin-top: 0">
<input type="hidden" name="tags" value="web-form" />
<input type="hidden" name="attributes[language]" value="" />
<input type="submit" value="Register">
</div>
</div>
</form>
<script>
document.querySelectorAll('input[name="list"]').forEach(radio => {
radio.addEventListener('change', function() {
this.form.action = `https://telraam.mailcoach.app/subscribe/${this.value}`;
});
});
</script>
<br>
<h2 class="footer-accent">Follow us</h2>
<a href="https://www.facebook.com/Telraam/" class="social">
<span class="screen-reader-text">Facebook</span>
<svg width="32" height="32" xmlns="http://www.w3.org/2000/svg">
<path d="M6.023 16L6 9H3V6h3V4c0-2.7 1.672-4 4.08-4 1.153 0 2.144.086 2.433.124v2.821h-1.67c-1.31 0-1.563.623-1.563 1.536V6H13l-1 3H9.28v7H6.023z" fill="#a5acb9"></path>
</svg>
</a>
<a href="https://bsky.app/profile/telraam.bsky.social" class="social">
<span class="screen-reader-text">Bluesky</span>
<svg fill="none" viewBox="0 0 90 87" width="24" style="width: 24px; height: 22.5px; position: relative; top:-3px; left: -3px;"><path fill="#A5ACB9" d="M13.873 3.805C21.21 9.332 29.103 20.537 32 26.55v15.882c0-.338-.13.044-.41.867-1.512 4.456-7.418 21.847-20.923 7.944-7.111-7.32-3.819-14.64 9.125-16.85-7.405 1.264-15.73-.825-18.014-9.015C1.12 23.022 0 8.51 0 6.55 0-3.268 8.579-.182 13.873 3.805ZM50.127 3.805C42.79 9.332 34.897 20.537 32 26.55v15.882c0-.338.13.044.41.867 1.512 4.456 7.418 21.847 20.923 7.944 7.111-7.32 3.819-14.64-9.125-16.85 7.405 1.264 15.73-.825 18.014-9.015C62.88 23.022 64 8.51 64 6.55c0-9.818-8.578-6.732-13.873-2.745Z"></path></svg>
</a>
<a href="https://www.linkedin.com/company/telraam/" class="social" style="position: relative; top: -2px;">
<span class="screen-reader-text">Linkedin</span>
<svg width="32" height="32" xmlns="http://www.w3.org/2000/svg">
<path fill="#A5ACB9" d="M8,18H5V7h3V18z M6.5,5.7c-1,0-1.8-0.8-1.8-1.8s0.8-1.8,1.8-1.8S8.2,3,8.2,4S7.5,5.7,6.5,5.7z M20,18h-3v-5.6
c0-3.4-4-3.1-4,0V18h-3V7h3v1.8c1.4-2.6,7-2.8,7,2.5V18z"/>
</svg>
</a>
</div>
</div>
</div> <!-- block -->
<script src="/livewire/livewire.js?id=90730a3b0e7144480175" data-turbo-eval="false" data-turbolinks-eval="false" ></script><script data-turbo-eval="false" data-turbolinks-eval="false" >window.livewire = new Livewire();window.Livewire = window.livewire;window.livewire_app_url = '';window.livewire_token = 'hBVPugK0pgtN0OA1V3JpvUfH108uQW6WXa67LPBM';window.deferLoadingAlpine = function (callback) {window.addEventListener('livewire:load', function () {callback();});};let started = false;window.addEventListener('alpine:initializing', function () {if (! started) {window.livewire.start();started = true;}});document.addEventListener("DOMContentLoaded", function () {if (! started) {window.livewire.start();started = true;}});</script>
</footer>
</body>
</html>
Sitemap
Кол-во: 0
XML-карта сайта для поисковиков
?
Sitemap.xml помогает поисковику быстрее находить и индексировать страницы. Особенно важен для крупных сайтов и новых страниц, на которые ещё нет входящих ссылок.
Robots.txt не содержит ссылку на карту сайта. Рекомендуется добавить карту сайта и указать ссылку на нее в robots.txt.
Внутренние ссылки
Кол-во: 33
Ссылки на другие страницы своего сайта
?
Внутренние ссылки распределяют ссылочный вес между страницами и помогают поисковику обходить сайт. Пустые анкоры и ссылки на запрещённые robots.txt страницы — типичные ошибки.
На странице присутствуют внутренние ссылки с пустым анкором: 2!
Внутренних ссылок на странице 33 оптимально.
Внутренние ссылки не запрещены к индексации в robots.txt.
Показать внутренние ссылки
| Url | Анкор | Состояние |
|---|---|---|
| /en/references-and-projects |
References & Projects
|
|
| /en/partners |
Partners
|
|
| /en/blog |
Blog
|
|
| /en/jobs |
Jobs
|
|
| /en/about-us |
About Us
|
|
| /en/contact-us |
Contact Us
|
|
|
Пустой анкор
|
|
|
| /en |
Map
|
|
| /en/our-traffic-counter |
What is Telraam
|
|
| /en/S2 |
Device
|
|
| /en/data-subscription |
Data
|
|
| /en/network |
Network
|
|
| /en/pricing |
Pricing
|
|
| /en/references-and-projects |
References & Projects
|
|
| /en/partners |
Partners
|
|
| /en/blog |
Blog
|
|
| /en/jobs |
Jobs
|
|
| /en/about-us |
About Us
|
|
| /en/contact-us |
Contact Us
|
|
| /en/login |
Login
|
|
| /en/register |
Register
|
|
|
Пустой анкор
|
|
|
| /en/ |
Map
|
|
| /en/what-is-telraam |
What is Telraam
|
|
| /en/S2 |
Device
|
|
| /en/data-subscription |
Data
|
|
| /en/network |
Network
|
|
| /en/shop |
Pricing
|
|
| /en/blog |
Blog
|
|
| /en/privacy-policy |
Privacy Policy
|
|
| /en/cookie-policy |
Cookie Policy
|
|
| /en/terms-of-use |
Terms of Use
|
|
| /downloads/RearWindow-BusinessTerms-EN.pdf |
Business Terms
|
|
Внешние ссылки
Кол-во: 6
Ссылки на сторонние сайты
?
Исходящие внешние ссылки передают часть ссылочного веса на чужие сайты. Ссылки на авторитетные ресурсы безопасны; ссылки на мусорные сайты могут навредить репутации страницы.
Внешних ссылок на странице 6 слишком много. Спрячьте лишние ссылки в тег noindex или атрибут rel='nofollow'!
На странице присутствуют ссылки на субдомены 8.
Показать внешние ссылки
| Url | Анкор |
|---|---|
| 1st-floor.be |
1st Floor
|
| press-kit.helpspace-docs.io |
Press Kit
|
| telraam-api.net |
Telraam API
|
| facebook.com |
<span class="screen-reader-text">Facebook</span>
<svg width="32" height="32" xmlns="http://www.w3.org/2000/svg">
<path d="M6.023 16L6 9H3V6h3V4c0-2.7 1.672-4 4.08-4 1.153 0 2.144.086 2.433.124v2.821h-1.67c-1.31 0-1.563.623-1.563 1.536V6H13l-1 3H9.28v7H6.023z" fill="#a5acb9"></path>
</svg>
|
| bsky.app |
<span class="screen-reader-text">Bluesky</span>
<svg fill="none" viewbox="0 0 90 87" width="24" style="width: 24px; height: 22.5px; position: relative; top:-3px; left: -3px;"><path fill="#A5ACB9" d="M13.873 3.805C21.21 9.332 29.103 20.537 32 26.55v15.882c0-.338-.13.044-.41.867-1.512 4.456-7.418 21.847-20.923 7.944-7.111-7.32-3.819-14.64 9.125-16.85-7.405 1.264-15.73-.825-18.014-9.015C1.12 23.022 0 8.51 0 6.55 0-3.268 8.579-.182 13.873 3.805ZM50.127 3.805C42.79 9.332 34.897 20.537 32 26.55v15.882c0-.338.13.044.41.867 1.512 4.456 7.418 21.847 20.923 7.944 7.111-7.32 3.819-14.64-9.125-16.85 7.405 1.264 15.73-.825 18.014-9.015C62.88 23.022 64 8.51 64 6.55c0-9.818-8.578-6.732-13.873-2.745Z"></path></svg>
|
| linkedin.com |
<span class="screen-reader-text">Linkedin</span>
<svg width="32" height="32" xmlns="http://www.w3.org/2000/svg">
<path fill="#A5ACB9" d="M8,18H5V7h3V18z M6.5,5.7c-1,0-1.8-0.8-1.8-1.8s0.8-1.8,1.8-1.8S8.2,3,8.2,4S7.5,5.7,6.5,5.7z M20,18h-3v-5.6
c0-3.4-4-3.1-4,0V18h-3V7h3v1.8c1.4-2.6,7-2.8,7,2.5V18z"></path>
</svg>
|
Конкуренты Готовность: 0%
Конкуренты в Яндексе
Кол-во: 0
Топ сайтов-конкурентов в Яндексе
?
Сайты, чаще всего появляющиеся в ТОПе Яндекса по запросам из семантического ядра этой страницы.
Мы не нашли у вас конкурентов в Яндексе. Сайт или очень молодой или плохо продвигается.
Конкурентов в ТОП-10 Яндекса не нашлось.
Конкуренты в Google
Кол-во: 0
Топ сайтов-конкурентов в Google
?
Сайты, чаще всего появляющиеся в ТОПе Google по запросам из семантического ядра этой страницы.
Конкуренты в Google тоже не найдены. Займитесь продвижением сайта!
Конкурентов в ТОП-10 Google не нашлось.
ЗоЗПП: права потребителей Готовность: 100%
Нарушения
Не выявлены
Признаков дистанционной продажи товаров (интернет-магазина) не обнаружено — требования ЗоЗПП о раскрытии информации продавца к сайту не применяются. Нарушений нет.
ФЗ-149: рекомендательные технологии Готовность: 100%
Нарушения
Не выявлены
Рекомендательные блоки («с этим покупают», «похожие товары» и т.п.) на сайте не обнаружены — требования ст. 10.7 ФЗ-149 к сайту не применяются. Нарушений нет.
ФЗ-38: реклама Готовность: 100%
Нарушения
Не выявлены
Рекламных тематик с обязательными оговорками (медицина, БАД, кредиты и займы, новостройки) на сайте не обнаружено. Нарушений нет.
ФЗ-436: защита детей Готовность: 100%
Нарушения
Не выявлены
Признаков информационной продукции (новости, видео, книги, игры, курсы) не обнаружено — обязательная возрастная маркировка по ФЗ-436 сайту не требуется. Нарушений нет.
Вердикт
Страница https://telraam.net/en готова к продвижению на 55%. Чтобы еще улучшить страницу и попасть на первые места поисковой выдачи необходимо:
Исправьте ошибки в мета-тегах.
Исправьте ошибки индексации.
Поделитесь с друзьями: