Fórum nápovědy

Seznam

Občas při načtení chybí jeden sloupec čtverců

1121212 F

10.5.2022 v 8:41

Dobrý den,
stává se nám, že při načtení mapy chybí jeden sloupec čtverců, ze kterých je mapa tvořena viz obrázky v příloze. Nepodařilo se nám najít přesné repro-steps, ale na tuto chybu nepravidelně narážíme jak mi během vývoje, tak náš zákazník. Dokonce jsem na tuto chybu narazil i v ukázkách Mapy API (viz https://api.mapy.cz). Chtěl bych se tedy zeptat jestli vás napadá možná příčina, nebo se jedná o known issue?

Děkuji,
Michael Melena.

Honza Laš • tým Mapy.cz

17.5.2022 v 8:51

Dobrý den,
díky za nahlášení, na chybu se podíváme a zkusíme najít řešení.

Honza Laš, Mapy.cz

1121212 F reagoval na příspěvek od Honza Laš

12.7.2022 v 8:18

Dobrý den,

podařilo se vám najít řešení?

Děkuji,
Michael Melena.

1121212 F reagoval na příspěvek od Honza Laš

17.8.2022 v 11:57

Dobrý den,
problém u nás stále přetrvává. Máte nové informace, které by nám pomohli se s touto chybou vypořádat?

Děkuji,
Michael Melena.

Jakub Kraft • tým Mapy.cz

22.8.2022 v 10:26

Dobrý den,

problém se nám nepodařilo ani zrepordukovat. Narazili jsme na jiný problém, který jsme doufali, že by mohl být zdrojem takového chování, na ten jsme už opravu nasadili a zjevně to nepomohlo. Pro další řešení tedy budeme asi potřebovat více informací. Ideálně kroky vedoucí k problému, stav JS konzole, log síťových dotazů (tedy v dev tools záložka network, kde se dá vyčíst, zda se dotazy na dlaždice vůbec uskutečnily a pokud ano, tak s jakými parametry a s jakým výsledkem).

Petr Steinbauer

2.12.2022 v 12:55

Zdravím,
měl jsem to taky, viz obrázek v příloze.

Opravil jsem to tak že mapa v modálnim okně boostrapu se nenačítala při použití show.bs.modal ale až po použití shown.bs.modal - dokumentace: https://getbootstrap.com/docs/5.0/components/modal/#events

Negativní efekt je, že načtení mapy se tak zbrzdí cca sekundu, ale chápu, že mapa při show.bs.modal neví velkost a tak se vykreslí jen částečně.

Jan Buriánek

5.12.2022 v 20:58

Dobrý den,
takže jsem to asi našel - chybějící sloupec čtverců mapy viz příloha png. (Předchozí příspěvek pana Steinbauera je asi o jiném problému.)
Dále je v příloze html stránka, na které to lze bez problému replikovat.

Předělávám svůj web na nový design a na daný problém jsem také narazil. No a všimnul jsem si, že to souvisí s vypnutím/zapnutím postranního menu.
A začalo mi připadat, že chybějící část se náramně podobá rozměru šířky menu.
Tak jsem začal pátrat po pixelových rozměrech a našel jsem to.

V html v příloze je scéna "DIV m" vložena do nadřazeného DIV id=scena a tomu se programově mění velikost - šířka, změnou stylu pozice .left

Změnu rozměru DIV jsem pro tento příklad naprogramoval: pravým kliknutím myši na mapě, opakované klikání to mění cik-cak (vlevo je/není prostor 200px pro nějaké budoucí menu...)

Při otevření stránky tam menu(prostor vlevo) je. Klikněte pravým tlačítkem v mapě a mapa se zvětší na celou obrazovku - posune se o 200px do leva
Když "budete mít kliku", tak rovnou vznikne chybějící sloupec, záleží na aktuální velikosti okna.
Pokud nevznikne, tak mapu pomalu po kouskách popotahujte doleva, až se chybný sloupec vpravo objeví.

V dev tools záložka síť je vidět, že neprobíhá komunikace, nejsou odesílány žádné požadavky na dlaždice.
Protože si SMap myslí, že ještě nejsou potřeba... Páč má jiný rozměr m._size než je skutečná velikost okna DIV pro scénu "m".

Rozměr m._size a rozměr nadřazeného DIV jsou vypisovány do konzole (při každém redraw)
Jakmile se klikne pravým a zvětší se mapa (nebo i zmenší po předchozí ruční změně velikosti okna), tak se tyto hodnoty nerovnají.
(Tuším, že v tento moment nebude chodit správně ani centrování a kdo ví, co ještě... :)

Stačí ale změnit rozměr okna (rozměr prohlížeče), a hodnoty se okamžitě srovnají - a chybný sloupec mizí.
Zřejmě při těchto změnách velikosti okna se to čte a mění, ale při programové změně rozměru DIV ne.
Při změně velikosti DIV nedochází k resize, při změně okna ano. Resize se také vypisuje do konzole.

Opravíte to?
Lze to nějak obejít, aneb jak programově donutit k resize?

Jakub Kraft • tým Mapy.cz reagoval na příspěvek od Jan Buriánek

6.12.2022 v 16:37

Dobrý den,

pokud se změní mapě velikost prvku, do kterého se má vykreslovat, je třeba zavolat její metodu syncPort, viz https://api.mapy.cz/doc/SMap.html#syncPort, aby se srovnala. Při resize okna to není třeba dělat, protože na to mapa poslouchá (pokud má v sobě ovladací prvek https://api.mapy.cz/doc/SMap.Control.Sync.html). I proto se vám asi se změnou velikosti okna vše srovná.

Jan Buriánek reagoval na příspěvek od Jakub Kraft

6.12.2022 v 16:58

Jak triviální!
Stačí to jen vědět...
Velice děkuji.
:)

Takže i pro ostatní, po programové změně velikosti prvku v němž je mapa, je potřeba přidat m.syncPort()
A je to.

Do přiloženého html je to přidáno na levý klik do mapy.

Nový dotaz

Přiložené přílohy

    Zbývá 12MB (z 12MB)

    Občas při načtení chybí jeden sloupec čtverců

    Přiložené přílohy

      Zbývá 12MB (z 12MB)