Autor Zpráva
peta
Profil
http://axpsu.fpf.slu.cz/~web/x/js-mapa/js-mapa3.htm
700k obr mapa, 200k jquery ui, 80k jquery, 50k obr pripinacky
Jak zjednodusit takovyto kod, jestli to jde? Obrazky neresit.

Funguje to takto.
Vpravo je seznam budov. Kliknutim na budovu se zvyrazni na mape pripinacek a do policka detail se zobrazi detaily. (Prozatim jsou pripinacky umistene spatne, protoze jsem to prepocitaval z gps pro jinou mapu bez uvedeni zaobleni zeme. Protoze se mi ta mapa nelibila, slepil jsem jinou z google)
Uzivatel si pak muze nektere objekty smazat, zmenit, presunout vybrany, pridat, nastavit zoom mapy. Pro adminy je tlacitko zobrazeni Zdroje, protoze mame budovy v nekolika mestech.

PS. Drbal jsem se s tim asi 2 tydny, nez se mi to povedlo v jquery rozchodit :)
pcmanik
Profil
Skutocne potrebujes vsetky jquery ui pluginy?

Ale inak moc nwm, naco tam mas vobec cele jQuery, ved s tou mapou sa neda nic robit, su tam dane len pripinaciky.
peta
Profil
"Uzivatel si pak muze nektere objekty smazat, zmenit, presunout vybrany"
Vpravo kliknes na nazev a ten zvyrazneny oranzovou lze presouvat. To je spis funkce pro adminy, kteri tam ty znacky budou pozicovat.
Krom jineho lze presouvat legendu.
__construct
Profil
Nie som nejaký Javascriptový guru, ale príde mi to zle navrhnuté. Nielen spôsob zápis kódu - napr.:.append($("\n"+'<option value="'+i+'">'+m.description+'</option>')
Efektívnejšie je : $('#nejakySelect').append($("<option></option>").attr("value",key).text(value));
Zmysel tohoto a tomu podobných nechápem: data['n'] = inp.find(":input[name='n']").val();

Z užívateľského hľadiska mi tam chýba možnosť ovládania cez klávesnicu.

peta:
Uzivatel si pak muze nektere objekty smazat, zmenit, presunout vybrany
Áno, k tomu ale nepotrebuješ viac ako polovicu vecí ktoré načítavaš.
ninja
Profil
peta: Proč pro mapový podklad nepoužijete přímo Google Maps API? Tam najdete i většinou potřebných věcí pro zvýrazňování, posun, atd. Navíc pak nebudete porušovat jejich licenční podmínky, mapa bude přibližitelná, atd.
peta
Profil
ninja: Nevyhovuje to mym potrebam. Pomale nacitani, spatna kvalita pro tisk. Pro tisk je treba dat na stranku obrazek aspon 2x takove velikosti, zmenseny.
Obrazovka: 1200 bodu na sirku
Tiskarna: 300 dpi, 30 cm sirka papiru, presneji: 300 * (29.7 - 1.0) / 2.54 = 3390
Nevim, zda jde google mapam rici, ze maji zobrazit obrazek <img width=100>, ale realny by brali 200x200 px.
Pri 150 dpi je to polovicka, 1700, porad asi o tretinu vic nez 1200.

__construct: Placal jsem to samozrejme tak, jak jsem svedl. Proto jsem to dal sem, jestli by to nekdo zjednodusil, treba.

Option - To asi tak prepisu, at to mam vsechno jquery.

data['n'] = inp.find(":input[name='n']").val(); // to je nacteni hodnoty z formulare z policka s name do pole data. Jsem prave nevedel, jak to mapsat jinak, abych tam nemusel placat id nebo pouzit zapisy
data['n'] = form['n'].value

"Z užívateľského hľadiska mi tam chýba možnosť ovládania cez klávesnicu. "
To je jednoucelova mapa prevazne pro tisk. Uzivatel do ni vicemene nema, co sahat. Upravu by meli vyuzit pouze admini pri zmene objektu. Jsem si rikal, udelam to jednoduse, aby admin mohl proste objekt presunout a mohl ho ulozit. Serazeni v poli uz muze provest i rucne presunutim radku.
Kazdy rok se nam tu meni budovy, nejakou pridaji, nejakou uberou, ted dve prestavuji a uz me nebavilo kazdy rok vykreslovat mapu v gimpu.
Zrovna treba ten spendlik neni moc dobre reseni, ma tenky konec a uzivatel nemusi vedet, kde konci. Lepsi me nenapadlo. uz jsem premyslel o sipeckach, z trojuhelniku se da opticky urcit zhruba konec lepe nez z dlouhe tenke cary.

Ano, je pravda, ze tam pouzivam kompletni knihovnu jquery a ui. Takze jestli nahodou nekdo vi z toho, co pouzivam o nejake ocesane verzi doklikatelne pro upgrade pres oficialni stranku, udelalo by mi to radost, ale neni to vec tak dulezita :)
ninja
Profil
peta: V tom případě mě zajímá, kde chcete vzít legální mapové podklady, zvláště pokud je chcete primárně tisknout. Ceny se pohybují v řádek desítek tisíc korun...
peta
Profil
ninja: A na to jsi prisel jak? Ja byl pred rokem na katastralnim urade a za mapu mesta chteli 50 korun. Sken, Gimp, web.
__construct
Profil
peta:
data['n'] = inp.find(":input[name='n']").val(); // to je nacteni hodnoty z formulare z policka s name do pole data. Jsem prave nevedel, jak to mapsat jinak, abych tam nemusel placat id nebo pouzit zapisy
data['n'] = form['n'].value
Samozrejme, že som pochopil k čomu to chceš. Asi som sa zle vyjadril — myslel, že mi príde neefektívne používať interáciu metódou find() - rozhodne by sa to dalo napísať efektívnejšie - v tom mi to príde „nezmyselné“.
ninja
Profil
peta: To byla katastrální mapa? Nebo normální? Kdo byl její autorem? Bylo to pro osobní nebo komerční použití?

Já psal o mapách od Kartografie PRAHA, a.s.
_es
Profil
peta:
za mapu mesta chteli 50 korun. Sken, Gimp, web.
Ak si kúpim napríklad knihu za trebárs 300 korún, tak to ešte neznamená, že ju môžem oskenovať a dať na internet k voľnému stiahnutiu.
peta
Profil
__construct: To je prave predmetem tematu :) Zjednodusit, zlepsit kod.

Mezitim jsem tam nahral novejsi verzi. Posouvani je podmineno zaskrtnutim v nastaveni. A je tam par zmen. Co me trepi nejvic je poloha znacek. Nejak chybne se to prepocitava pri zoomovani. Asi to nejak souvisi s posunem body a html. Pri 1:1 by to melo byt nyni ok.
peta
Profil
Bug s polohou mam odstraneny, asik :) Neuveritelne. Kdyz se do css napise top:100; a vzapeti bottom:0; , tak logicky by se top melo ignorovat. Nikoliv, ignoruje se bottom :) Takze jsem tam mel text a obrazek spatne napozicovany vuci bodu.
__construct
Profil
peta:
Zjednodusit, zlepsit kod.

Toto this.marks = marks ? marks : []; a podobné sa dá efektívnejšie zapísať this.marks = marks || [];

Zbytočne voláš niektoré jQuery metódy:
.addClass("znacka").addClass("type"+mark['category']) - .addClass("znacka type"+mark['category'])
.attr('id','n'+n).attr('title',mark['description']) - .attr({'id':'n'+n, 'title' : mark['description']})
atď.

Chceš povedať, že inp.find(":input[name='text']").val(); je efektívnejšie ako document.forms[0].text.value?

Ďalej nemám chuť skúmať ten chaos.
me vakérav
Profil *
Na tohle spíše použij OpenStreetMap. Mapu z nich můžeš použít libovolně, data samotná téměř taky. Kromě toho zrovna Opava je v OpenStreetMap velice dobře zmapovaná, rozhodně lépe než na Google mapách.
peta
Profil
me vakérav: Mno, ja tam mam dalsich 7 mest :)
http://www.slu.cz/su/fpf/cz/objekty-su
Ale prozkoumam tu moznost, http://www.openstreetmap.org/ se zobrazuji docela svizne proti jinym mapam.
Hm, tak prvni poznamka, lidicka - olbrichova, ten kostel mozna evangelicky je, ale oficilne je tam tusim knihovna. Jako kostel uz to dlouha leta neslouzi. Na rybnicku 1, rektorat, nejdulezitejsi budova su, tam vubec neni cislovana budova. Jeste to proberu s kolegy.

__construct: Zkouknu to, dik. Jquery vs. javascript, samozrejme, ze js je efektivnejsi, ale chtel jsem pouzit reseni jquery. Predpokladam, ze se snad v budoucnu vyvine verze js zalozena na jquery a jiny js upadne v zapomeni, jak se stalo s resenim kompatibility pro ie6.
_es
Profil
peta:
Zkouknu to, dik. Jquery vs. javascript, samozrejme, ze js je efektivnejsi, ale chtel jsem pouzit reseni jquery. Predpokladam, ze se snad v budoucnu vyvine verze js zalozena na jquery a jiny js upadne v zapomeni, jak se stalo s resenim kompatibility pro ie6.
Ach jaj, to sú ale absurdity, jQuery nahrádza DOM za svoje vlastné metódy s nejakými prídavkami, vôbec nerieši syntax jazyka, je to len jedna globálna funkcia/objekt. „JS založený na jQuery“ je už úplný nezmysel.

Vaše odpověď

Mohlo by se hodit

Neumíte-li správně určit příčinu chyby, vkládejte odkazy na živé ukázky.
Užíváte-li nějakou cizí knihovnu, ukažte odpovídajícím, kde jste ji vzali.

Užitečné odkazy:

Prosím používejte diakritiku a interpunkci.

Ochrana proti spamu. Napište prosím číslo dvě-sta čtyřicet-sedm:

0