prepinani WMS layer

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í.
vla...@...
Příspěvky: 14
Windows NT 64 bits Google Chrome 61.0.316

prepinani WMS layer

odesláno v 12 říj 2017 10:59

Dobry den,

je nejak mozne s vyuzitim vaseho API (analogicky ke prikladu https://api.mapy.cz/view?page=layers-manual) realizovat prepinani WMS vrstev?
Pro zacatek by stacilo, kdyby jedna vrstva mapy.cz zustala jako podkladova, a nad ni by bylo mozne menit vrstvy z WMS...

je mozne ovladat nezavisle prusvitnost vasich DEF_ vrstev a WMS vrstev?

Dekuji vp

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

Re: prepinani WMS layer

odesláno v 13 říj 2017 08:53

Hezky den,

vla...@... píše:je nejak mozne s vyuzitim vaseho API (analogicky ke prikladu https://api.mapy.cz/view?page=layers-manual) realizovat prepinani WMS vrstev?
Pro zacatek by stacilo, kdyby jedna vrstva mapy.cz zustala jako podkladova, a nad ni by bylo mozne menit vrstvy z WMS...


samozrejme. Ukazka prepinani vrstev neni zadnym zpusobem vazana na nase DEF_* vrstvy. Klidne prepinejte sve vlastni. V ramci ukazky proste namisto "m.addDefaultLayer(SMap.DEF_BASE)" pouzijete "new SMap.Layer.WMS(...)".

vla...@... píše:je mozne ovladat nezavisle prusvitnost vasich DEF_ vrstev a WMS vrstev?


Ano, pomoci CSS:

Kód: Vybrat vše
vrstva.getContainer()[SMap.LAYER_TILE].style.opacity = 0.5;

vla...@...
Příspěvky: 14
Windows NT 64 bits Google Chrome 61.0.316

Re: prepinani WMS layer

odesláno v 13 říj 2017 13:31

Dekuji vam za odpoved,
jsem /Z\, takze mozna snadno nize objevite moji chybu...

>>> z https://api.mapy.cz/view?page=layers-manual >>>

Zkousim nasledujici (wms neuvadim, nechci moc odkazovat na nase uz tak pretizene servery, nicmene voditkem pro vas mozna muze byt i fakt, ze zkousim prepinat ruzne vrstvy ze stejne WMS (mam overeno ze kazda samostatne funguje)):
...
var center = SMap.Coords.fromWGS84(14.5,50.0);
var M0 = new SMap(JAK.gel("M0"),center,9); //,{projection:new SMap.Projection.Mercator()});
var L1 = new SMap.Layer.WMS(null,"http://wms0",{layers:"lyr1"});
var L2 = new SMap.Layer.WMS(null,"http://wms0",{layers:"lyr2"});
var layers = {};
layers[SMap.DEF_TURIST] = M0.addDefaultLayer(SMap.DEF_SMART_TURIST);
layers[L1] = M0.addLayer(L1);
layers[L2] = M0.addLayer(L2);
layers[SMap.DEF_TURIST].enable();

...zatvrzele mi pak aplikace prepina jen mezi SMap.DEF_TURIST a L2, tj. naposledy naplnenou promennou typu WMS layer tj. [L2]

var switchLayer = function(e,elm) {
for (var p in layers) { layers[p].disable(); }
switch (elm.selectedIndex) {
case 0: layers[SMap.DEF_TURIST].enable(); break;
case 1: layers[L1].enable(); break;
case 2: layers[L2].enable(); break;
}
}
...

predem dekuji za objasneni...

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

Re: prepinani WMS layer

odesláno v 16 říj 2017 07:45

vla...@... píše: layers[L1] = M0.addLayer(L1);
layers[L2] = M0.addLayer(L2);


Problemem je zde zapis "layers[L1]". Promenna "layers" je JS objekt, ktery lze indexovat pouze retezci, ale vy jako indexy pouzivate L1 a L2, coz jsou objekty (nikoliv retezce).

V nasi ukazce to funguje, nebot pouzivame jako indexy SMap.DEF_*, coz jsou jen konstanty, nikoliv instance jednotlivych vrstev.

V tuto chvili je reseni snadne: namisto "layers[L1]" zkuste "layers[L1.getId()]". Kazda vrstva ma vlastni ID, ktere je mj. urceno prave pro toto pouziti. Samosebou to znamena i odpovidajici zmenu v ramci nasledneho bloku "switch".

vla...@...
Příspěvky: 14
Windows NT 64 bits Google Chrome 61.0.316

Re: prepinani WMS layer

odesláno v 16 říj 2017 11:27

Funguje. Dekuji velmi :-)

vla...@...
Příspěvky: 14
Windows NT 64 bits Google Chrome 62.0.320

Re: prepinani WMS layer

odesláno v 01 lis 2017 14:44

Jeste jednou zdravim, nastaveni opacity funguje.
Je ale nejak mozne nastavit, pokud WMS publikuje vrstvu, kde vetsinu pokryti tvori jednobarevna vypln (bila/cerna), aby se nejaka konkretni barva (popsana indexem nebo RGB hodnotou) zobrazovala zcela transparentne a zbytek naopak netransparentne?
Dekuji vp

vla...@...
Příspěvky: 14
Windows NT 64 bits Google Chrome 62.0.320

Re: prepinani WMS layer

odesláno v 01 lis 2017 15:44

vyreseno kombinaci parametru {format:"image/png", layers:"0", "TRANSPARENT":true}

Zpět na Mapy API v4.0



cron