Dynamická velikost mapy

Diskuse k nové verzi mapového API. Napište nám, co se vám na novém API libí či nelíbí a přispějte svými komentáři a připomínkami k jeho zdokonalení.
siv...@...
Příspěvky: 2
Windows Seven 64 bits Google Chrome 58.0.302

Dynamická velikost mapy

odesláno v 29 kvě 2017 10:15

Zdravím Mám problém pri implementácii mapy pri rezsponzívnej verzii.

Potrebujem použiť parameter var sync = new SMap.Control.Sync();
Z dôvodu aby som pri každom resize okna, mal daný cieľ vždy v strede mapy.

Ak však použijem tento parameter takto var sync = new SMap.Control.Sync({bottomSpace:30});
Tak sa bude dynamicky meniť výška mapy. Ja však potrebujem aby výška mapy ostala statická aby sa pri resize okna mapa len cetrovala na stred cieľu.


Ak však použijem tento parameter takto var sync = new SMap.Control.Sync({bottomSpace:null});
mapa bude mať nulovú výšku.


Chcel som to riešiť tak že parameter var sync = new SMap.Control.Sync(); vôbec nepoužijem a pri každom resize okna mapu znova vyrenderujem.
To mi však nepríde ako správne riešenie.


Existuje spôsob ako použiť parameter var sync = new SMap.Control.Sync(); tak aby mapa mala výšku 350px pixelov bez ohľadu na rozmer okna.
Přílohy
Screenshot_2.jpg
(66.75 KiB) Zatím nestaženo

siv...@...
Příspěvky: 2
Windows Seven 64 bits Google Chrome 58.0.302

Re: Dynamická velikost mapy

odesláno v 30 kvě 2017 08:33

Zdravím ak moja otázka nie je jasné môžem ju viac špecifikovať poprípade napísať v češtine :)

ond...@...
Seznam vývojář
Příspěvky: 870
Ubuntu Linux 64 bits Firefox 53.0

Re: Dynamická velikost mapy

odesláno v 31 kvě 2017 15:18

Hezky den,

toto forum bohuzel nepodporuje prilohy, resp. nedaji se zobrazit. To nevadi, jiste problem vyresime i tak.

Pro sve fungovani mapa potrebuje znat rozmery prvku, ve kterem je vykreslena. Samotne API vsak nema zadny spolehlivy zpusob, jak zjistit, ze doslo ke zmene rozmeru tohoto prvku. Proto o tom musime API notifikovat rucne, zavolanim metody "mapa.syncPort()". To je reseni, ktere bych doporucil (patrne v ramci posluchace udalosti "resize").

Protoze uzivatele casto poptavaji mapu, ktera zaplnuje cele okno prohlizece, existuje ovladaci prvek SMap.Control.Sync, ktery dela tri veci:

1) posloucha na "resize",

2) upravuje vysku mapoveho prvku,

3) vola metodu "syncPort()".

Vy nechcete druhy bod, proto je pro vas SMap.Control.Sync nevhodny.

Zpět na Mapy API v4.0