Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

TILES-3943 Add route case #556

Merged
merged 11 commits into from
Dec 16, 2021
Merged

TILES-3943 Add route case #556

merged 11 commits into from
Dec 16, 2021

Conversation

Kuznecoff
Copy link
Contributor

@Kuznecoff Kuznecoff commented Dec 9, 2021

Кнопка "Открыть в 2ГИС" - стала динамической если есть один маркер и он сечас виден на карте она меняеться на "Доехать с 2ГИС" и открывает 2гис онлайн для построения маршрута к точке.
Для локального тестирования нужно создать файл config.local.json
{
"baseUrl": ""
}

Тесты руками:

  • Карта без маркеров, на русском, на экране территория россии или любая другая кроме эмиратов!:
    ✓ есть кнопка Открыть в 2гис
    ✓ клик по конопке открывает с текущим положением карты и маштабом 2gis.ru
    ✓ клик по кнопке после изменение маштаба и перемещение карты - карта на 2gis.ru открываеться с актуальным положением и маштабом

  • Карта без маркеров, на русском, на экране территория эмиратов!:
    ✓ есть кнопка Открыть в 2гис
    ✓ клик по конопке открывает с текущим положением карты и маштабом 2gis.ae
    ✓ клик по кнопке после изменение маштаба и перемещение карты - карта на 2gis.ae открываеться с актуальным положением и маштабом

  • Карта с маркером, на русском, на экране территория россии или любая другая кроме эмиратов!:
    ✓ есть кнопка Доехать с 2гис
    ✓ клик по конопке открывает с текущим положением карты и маштабом 2gis.ru в режиме построить маршрут до точки, точка совпадает с маркером на карте
    ✓ клик по кнопке после изменение маштаба и перемещение карты - карта на 2gis.ru в режиме построить маршрут до точки, точка совпадает с маркером на карте

  • Карта с маркером, на русском, на экране территория эмиратов!:
    ✓ есть кнопка Доехать с 2гис
    ✓ клик по конопке открывает с текущим положением карты и маштабом 2gis.ae в режиме построить маршрут до точки, точка совпадает с маркером на карте
    ✓ клик по кнопке после изменение маштаба и перемещение карты - карта на 2gis.ae в режиме построить маршрут до точки, точка совпадает с маркером на карте

  • Карта без маркеров, на арабском, на экране территория россии или любая другая кроме эмиратов!:
    ✓ есть кнопка Open in 2gis
    ✓ клик по конопке открывает с текущим положением карты и маштабом 2gis.ru
    ✓ клик по кнопке после изменение маштаба и перемещение карты - карта на 2gis.ru открываеться с актуальным положением и маштабом

  • Карта без маркеров, на арабском, на экране территория эмиратов!:
    ✓ есть кнопка Open in 2gis
    ✓ клик по конопке открывает с текущим положением карты и маштабом 2gis.ae
    ✓ клик по кнопке после изменение маштаба и перемещение карты - карта на 2gis.ae открываеться с актуальным положением и маштабом

  • Карта с маркером, на арабском, на экране территория россии или любая другая кроме эмиратов!:
    ✓ есть кнопка Route in 2gis
    ✓ клик по конопке открывает с текущим положением карты и маштабом 2gis.ru в режиме построить маршрут до точки, точка совпадает с маркером на карте
    ✓ клик по кнопке после изменение маштаба и перемещение карты - карта на 2gis.ru в режиме построить маршрут до точки, точка совпадает с маркером на карте

  • Карта с маркером, на арабском, на экране территория эмиратов!:
    ✓ есть кнопка Route in 2gis
    ✓ клик по конопке открывает с текущим положением карты и маштабом 2gis.ae в режиме построить маршрут до точки, точка совпадает с маркером на карте
    ✓ клик по кнопке после изменение маштаба и перемещение карты - карта на 2gis.ae в режиме построить маршрут до точки, точка совпадает с маркером на карте

  • Смена языка карты когда нет слоя с маркером:
    ✓ map.setLang('en') - нет кнопки вместо нее логотип
    ✓ map.setLang('ar') - кнопка Open in 2gis
    ✓ map.setLang('ru') - кнопка Открыть в 2гис
    ✓ map.setLang('xx') - неизвестный язык карта по дефолту на русском - кнопка Открыть в 2гис

  • Смена языка карты когда есть слой с маркером:
    ✓ map.setLang('en') - нет кнопки вместо нее логотип
    ✓ map.setLang('ar') - кнопка Route in 2gis
    ✓ map.setLang('ru') - кнопка Доехать с 2гис
    ✓ map.setLang('xx') - неизвестный язык карта по дефолту на русском - кнопка Доехать с 2гис

  • На карте несколько маркеров:
    markerTest = DG.marker([54.980156831455, 82.897440725094]).addTo(map)
    ✓ Добавили единственный маркер на карту - кнопка Открыть в 2гис изменилась на Доехать с 2гис

    markerTest.remove()
    ✓ Удалили единственный маркер на карте - кнопка Доехать с 2гис изменилась на Открыть в 2гис

    markerTest = DG.marker([54.980156831455, 82.897440725094]).addTo(map)
    markerTest2 = DG.marker([54.980156831455, 82.897440725094]).addTo(map)
    

    ✓ Добавили несколько маркеров на карту - на карте кнопка Открыть в 2гис

    markerTest = DG.marker([54.980156831455, 82.897440725094]).addTo(map)
    markerTest2 = DG.marker([54.980156831455, 82.897440725094]).addTo(map)
    markerTest3 = DG.marker([54.980156831455, 82.897440725094]).addTo(map)
    markerTest2.remove();markerTest3.remove();
    

    ✓ Удалили несколько маркеров на карте пока не остался один маркер - на карте кнопка Доехать с 2гис

    markerTest = DG.marker([54.980156831455, 82.897440725094]).addTo(map)
    markerTest2 = DG.marker([54.980156831455, 82.897440725094]).addTo(map)
    markerTest3 = DG.marker([54.980156831455, 82.897440725094]).addTo(map)
    markerTest2.remove();markerTest3.remove();markerTest.remove();
    

    ✓ Удалили все маркеры - на карте кнопка Открыть в 2гис

    markerTest = DG.marker([54.980156831455, 82.897440725094]).addTo(map)
    markerTest2 = DG.marker([54.980156831455, 82.897440725094]).addTo(map)
    markerTest3 = DG.marker([54.980156831455, 82.897440725094]).addTo(map)
    markerTest2.remove();
    

    ✓ Удалили маркер но на карте еще больше одного маркера - на карте кнопка Открыть в 2гис

  • Нажали на кнопку Доехать с 2гис на зуме меньше 12
    ✓ карта откроется на 2gis в режиме построить маршрут до точки проезд на машине

  • Нажали на кнопку Доехать с 2гис на зуме больше или равно 12
    ✓ карта откроется на 2gis в режиме построить маршрут до точки проезд на автобусе

  • Карта инициализированна с опцией logotype:true:
    ✓ нет кнопки вместо нее логотип
    ✓ смена языка - нет кнопки вместо нее логотип
    ✓ добавить маркер - нет кнопки вместо нее логотип
    ✓ удалить маркер - нет кнопки вместо нее логотип
    ✓ двигать карту - нет кнопки вместо нее логотип

  • Карта открыта в режиме мобильного телефона:
    ✓ кнопка Доехать с 2гис правильно показанна в альбомной и книжной ориентации
    ✓ кнопка Открыть в 2гис правильно показанна в альбомной и книжной ориентации

@Trufi
Copy link
Contributor

Trufi commented Dec 10, 2021

Добавь описание и как посмотреть. Я открыл нашу стандартную демку и у меня ничего не нарисовалось, хотя там как раз 1 маркер.

src/DGAttribution/src/DGAttribution.js Outdated Show resolved Hide resolved
config.main.json Outdated

"openLink": "http://2gis.{domain}/{projectCode}/center/{center}/zoom/{zoom}/openLink=true",
"ppnotLink2gis": "{gislink}/center/{center}/zoom/{zoom}/routeTab/rsType/{rsType}/to/{point}/openLink=true",
"openLink2gis": "{gislink}/center/{center}/zoom/{zoom}/openLink=true",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Не совсем понял, какая ссылка в итоге получится?

Просто в онайлне координаты и зум в query-части. Слагов center и zoom нет

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

тот же вопрос про ссылку выше

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Примеры:

http://2gis.ru/center/82.89689093828201,54.97947773210846/zoom/18/routeTab/rsType/bus/to/82.897440725094,54.980156831455/openLink=true
http://2gis.ru/center/82.89838761091234,54.97849876432055/zoom/18/openLink=true
Так работает зум и центр - и темплейт скопировал из темплейтов ниже и чуть допилил

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Давай все же сделаем норм сслыки? Сейчас просто у нас где-то глубоко есть редиректор с таких урлов. Но, сколько он еще проживет — пес его знает.

https://2gis.ru/novosibirsk?m=82.898388%2C54.978499%2F18

https://2gis.ru/novosibirsk/directions/tab/bus/points/%7C82.897441%2C54.980157?m=82.896891%2C54.979478%2F18

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

ок мои линки поправил, там есть еще два старых линка - ссыкотно их править вдруг кто завязался на их структуру.


layerremove: function (e) {
if (e.layer instanceof DG.Marker) {
this._markers = [];
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А почему мы здесь полностью обнуляем массив маркеров, а не просто удаляем один удаляемый слой?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

переделал упростил до одного маркера. удаление переделал, но под старый JS тут еще все на var тащить filter не стал

layerremove: function (e) {
if (e.layer instanceof DG.Marker) {
this._markers = [];
this._map.eachLayer(function (layer) {
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

И вот этот код зачем? Тут же, по-моему вовсе нет переменной markerLayers, куда пушатся маркеры.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

оу тут ошибка! this._markers должно было быть. Спасибо

config.main.json Outdated
@@ -7,8 +7,8 @@

"trafficLayerMinZoom": 10,
"trafficLayerUpdateInterval": 300000,

"openLink": "http://2gis.{domain}/{projectCode}/center/{center}/zoom/{zoom}/openLink=true",
"ppnotLink2gis": "{gislink}/center/{center}/zoom/{zoom}/routeTab/rsType/{rsType}/to/{point}/openLink=true",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

А договорились давать ссылку именно на маршрут общественного транспорта? Тут просто используется аббревиатура ppnot.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

там выбор на зуме до 12 будет для машины выше 12 для автобусов

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Лучше назвать тогда этот параметр ppLink2gis, а то ppnotLink2gis введет в заблуждение что это только про маршрут на ОТ.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

переименовал и линк переделал на современный как Артем писал

}
var isNotTranslate = btn.label == 'open_on' || btn.label == 'route_on';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Уточни, плиз, что делает эта переменная?

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

проверка есть перевод для этой кнопки для текущего язка или нету, потом проверяем если нету то кнопку не показываем вообще, например для чехии и украины нету кнопки открыть.
Было решение в ТЗ показывать только для России и для Эмиратов , для Эмиратов на английском кнопку написать.

Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Назови тогда хоть buttonNotTranslated и эту логику комментом опиши, а то непонятно.

Copy link
Contributor Author

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

назвал комент дописал

config.main.json Outdated
@@ -7,8 +7,8 @@

"trafficLayerMinZoom": 10,
"trafficLayerUpdateInterval": 300000,

"openLink": "http://2gis.{domain}/{projectCode}/center/{center}/zoom/{zoom}/openLink=true",
"ppnotLink2gis": "{gislink}/center/{center}/zoom/{zoom}/routeTab/rsType/{rsType}/to/{point}/openLink=true",
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Лучше назвать тогда этот параметр ppLink2gis, а то ppnotLink2gis введет в заблуждение что это только про маршрут на ОТ.

}
var isNotTranslate = btn.label == 'open_on' || btn.label == 'route_on';
Copy link
Contributor

Choose a reason for hiding this comment

The reason will be displayed to describe this comment to others. Learn more.

Назови тогда хоть buttonNotTranslated и эту логику комментом опиши, а то непонятно.

src/DGAttribution/src/DGAttribution.js Outdated Show resolved Hide resolved
@itanka9 itanka9 self-requested a review December 13, 2021 10:13
Co-authored-by: itanka9 <itano@yandex.ru>
src/DGAttribution/src/DGAttribution.js Outdated Show resolved Hide resolved
Co-authored-by: Mstislav Zhivodkov <stevemyz@gmail.com>
@Trufi
Copy link
Contributor

Trufi commented Dec 15, 2021

А теперь самый главный вопрос — как ты тестировал финальный код? :)

@Kuznecoff Kuznecoff merged commit c9953d6 into master Dec 16, 2021
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
None yet
Projects
None yet
Development

Successfully merging this pull request may close these issues.

None yet

4 participants