-
Notifications
You must be signed in to change notification settings - Fork 15
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
Vrstva aktivních POI #4
Comments
openpoimap je o přístupu: hledám restauraci, tak se podívám, jestli tady v okolí nějaká není. Co by se mi líbilo více je přístup - vidím na mapě restauraci a zajímají mně detaily - otevírací doba, stránky. Tak si na ni kliknu a podívám se na detail. Ideální implementovat oboje. |
Při nejhorším to lze řešit jako to má osm.org - to tlačítko otazníku vpravo. Ač to není dokonalé, blíží se to. (Mimochodem openpoimap používá stejnou "technologii" tedy dotazování overpass api) Nicméně nějaká aktivní vrstva pro klikání restaurací apod by byla velmi zajímavá, ovšem je to o tom nakonfigurovat postgis databázi, importovat živá data a udělat tomu rozumné vektorové/dlaždicové API. Třeba to už existuje - případně pošlete... |
overpass api je bohužel docela pomalé. Chtělo by to vlastní databázi POI, která bude optimalizována pro danou funkci. A vybraná POI bych zpřistupnil přes geojson - stejně jako POI-Importer https://github.com/POI-Importer/POI-Importer.github.io - funkční příklad: http://osm.kyralovi.cz/POI-Importer |
Souhlas, je příliš pomalé. Nepochopil jsem jak ten poi-importer funguje, ale pro import poiek celé čr to možná bude chtít ten postgis. |
ten postgis bude hodne potreba, ulehci to tunu veci. a prez geojson to stejne bude komunikovat s javascriptem, takze tam bude tak jak tak. |
poi-importer funguje tak, že se sady POI vyexportují do formátu geojson a ten se pak pomocí utilitky rozdělí na menší soubory, kde jeden soubor odpovídá jedné dlaždici. Takže dotahování POI funguje úplně stejně jako dotahování dlaždic. Jak POI-Importer funguje jsem i s obrázky popsal tady: http://thread.gmane.org/gmane.comp.gis.openstreetmap.region.cz/12708/focus=12868 |
Dík za popis. Jo to by šlo, taková static verze toho postgisu. Jestli jseš ochotný připravit teď nějaký export čr toho co je zajímavé, tak se to dá +- rovnou přidat. Postgis bude na delší lokte. |
v praci sem presvedcil jednoho kolegu at nastuduje spatial extenzi a pak me to nauci:) |
No ten postgis bude třeba. A taky ho moc neumím. Na to je machr Petr Vejsada. Možná by neškodilo udělat seznam toho, co zatím existuje - služby, kde a na čem běží (interní, externí), abychom věděli, co je možné a co zatím nemáme (postgis). |
Já už jsem si s ním párkrát hrál a na té VPSce mi dokonce běží, ale pokud se do toho pustí někdo jiný, jedině dobře. :-) Služby sepiš ideálně do nového issue. |
Tady je overpass query pro všechny rozcestníky v ČR. [out:json][timeout:60];
// Czech Republic
//{{geocodeArea:Czech Republic}}->.searchArea;
area(3600051684)->.searchArea;
// gather results
(
// query part for: “information=guidepost and tourism=information”
node["information"="guidepost"]["tourism"="information"](area.searchArea);
);
// print results
out body;
>;
out skel qt; Zkusím si trochu pohrát s osmosis a připravit skript, který toho vygeneruje více. |
Jako s diskem asi není problém, spíše to zkus připravit tak, aby to šlo snadno skriptem vše zaktualizovat. A btw, též by to chtělo ten poi-importer nakonfigurovat tak, aby výstupem byl jeden set dlaždic. Kdybys potřeboval nějaké login údaje na tu VPS, tak kdyžtak mailni. |
OK. Zkusím zítra něco připravit, snad bude trochu času. Ten POI-Importér není potřeba, na rozdlaždicování tam na to je docela jednoduchý .js skriptík: https://github.com/POI-Importer/POI-Importer.github.io/blob/master/tile_geojson.js Pak už jen vyřešit to dotahování dlaždic. To právě nevím, jestli je nějak jednoduché, nebo ne. |
Dotahování by mělo být jednoduché, jestli to vygeneruje do složek ve formátu z/x/y.geojson .. tak to už je trivka. Ale ještě to chce nějak pěkně zobrazit na mapě + vhodné nerušivé ikonky (aka mapbox maki) .. no zkus se poprat a pošli. |
No tak to v tom případě bude potřeba vyřešit jinak. Teď to generuje toto:
Smysl jsem nezkoumal ;-) Ad zobrazení) |
Tak jsem zkusil v rychlosti něco najít a tohle vypadá docela slibně: https://github.com/mapbox/geojson-vt |
Jako obecně nejlepší řešení by bylo vědět kde ty ikonky vykresluje mapnik a jen dodat od určitého zoomu nevidtelný klikací overlay, který by nad ikonkou změnil kurzor. Viz třeba google fusion tables |
Jsem tu (Petr Vejsada). Postgis mám, data v něm taky, tak jde o to, v jakém formátu data dopravit na openstreetmap.cz. |
No v podstatě potřebuje něco ve stejné struktuře jako je png dlaždice (z/x/y.geojson) Za chvíli už snad konečně budu mít vygenerovaná příkladová data pro rozcestníky, tak se pak ozvu. |
Tak vygenerováno pro zoomy 10 - 18.
Zazipované to má 28 MB. Tak uvažuji kolik giga bude mít export pro všechna POI. |
@mkyral jsi rychlejší, no, já rozcházím tilestache s mod_python, to nejde, protože mám wsgi kvůli Taskmanu, tak změna, přes wsgi nebo Passengera, neboť Passenger je tu kvůli Ruby :-) začíná tu být přesoftwareováno :) |
Ani ne. Ty jsi s tím teď začal, já se s tím už dva dny drbu. Ale stejně to je jen dočasné řešení - nějak musím ten geojson vygenerovat. A pokud to půjde, tak je lepší vytvářet rovnou dlaždice a nedělat to přes prostředníky. Tak mne napadá, že by bohatě stačilo mít v těch dlaždicích jen souřadnice POI, jeho OSM ID a maximálně ještě typ. A zbytek řešit ajax requestem do databáze až v okamžiku, kdy na dané POI uživatel klikne. Tím se omezí velikost dlaždic a nebude se zbytečně přenášet to, co uživatel nepotřebuje. |
@mkyral) Super - kdyby si s tím chtěl někdo hrát rozbalil jsem ten tvůj zip - aka: http://openstreetmap.cz/tiles_guideposts/13/4423/2773.json Jinak já bych tam ty informace asi nechával - jedno mapové PNG má 25kb, pokud tenhle json bude mít ~ 10kb, tak je to pořád v pohodě a po kliku čekat nikdo moc nechce :) @pedro042) nemáš u sebe v postgisu POIky, které by šlo tahat jako geojson dlaždice? //edit: pedro to zprovznil: http://poloha.net:8080/vector/14/8847/5549.json |
@zbycz na čem myslíš, že teď pracuju? :-)) |
😍 |
Nasazeny "body" zájmu z ploch.
Testujte, prosím. |
osm_type poslano, vklada do linku node/way/relation. Funguje to i kdyz jsou tagy na way a na relaci. Jen je bod nepatrne posunut, predpokladam, ze pokud je way/relation symetricka, tak budou pres sebe => jeden z nich bude nedosazitelny, ale v datech budou oba. |
Trochu jsem to ty shopy poladil, ale centrum Prahy furt zabité :-( |
@jzvc nevím, jestli přesně rozumím, co myslíš tím, že půjdou body přes sebe. Ani tomu posunu. Dvojitě tam body určitě nebudou. Pokud nějaký polygon zasahuje do dlaždice, spočítá se ST_PointOnSurface a checknce se, jestli ten PointOnSurface je uvnitř té dlaždice nebo ne. Pokud je mimo dlaždici, tak v ní nebude. |
Javascriptu vůbec nerozumím, ale je mi prostě divné, proč to na prohlížečí tak strašně vytěžuje disk. To používá explicitně nějakou diskovou cache nebo tak? Není v té knihovně nějaký parametr, aby to zůstalo v RAM? Teď jsem si pro pokusy udělal $HOME na ramdisku, pže jinak bych asi buď utrhl hlavičky nebo umořil SSD. RAM to snad přežije ;-) |
Až na tu rychlost v prohlížeči to už vypadá dost pěkně. |
javascript nerozhoduje jestli to dělá disk nebo ram. To je věc prohlížeče. Ale poladit výkon je rozhodně priorita :-) |
Přidaná tilecache přímo do databáze :), teď už ani 1000 prohlížečů dohromady nebude mít šanci to ucpat. |
Až to pushneš na github, dej vědět, zajímalo by mě jak jsi tu tilecache nakonfiguroval 👍 |
Už. |
Tak jsme si včera hrál se zobrazováním opening_hours. Celkem by to šlo: Ovšem při testování různých reálných POI jsem narazil na bug v opening_hours.js, který má v některých případech problém s přechodem přes půlnoc: |
Jen poznamka - google mapy pouzivaji nejen "právě je otevřeno/zavřeno", ale i další stavy, minimálně "brzy bude zavřeno" - naskakuje to tam hodinu před zavíračkou. Text je pak zelený (otevřeno), červený (zavřeno) a nebo oranžový (brzy bude zavřeno). Dále bych navrhnul, aby ten text byl za slovy "Otevírací hodiny" a bude-li ten panel do budoucna obsahovat rozklikávací obsah (zkrácení dlouhého obsahu), tak ty podrobné hodiny dnes, zítra apod. předělat na kompletní přehled otvíračky dostupný právě až po rozevření... A text "právě je otevřeno" pak změnit ve smyslu "právě je otevřeno, do..." ...a ještě jednu věc - řádek "osm data" je super, ale dal bych jej jen zalogovaným OSM uživatelům, běžného uživatele to akorát vyděsí... :o) |
Díky za připomínky. Tohle je zatím fakt jen draft. osm_data tam mám jen pro kontrolu a počítám s tím, že budou ve výchozím stavu schované. Respektive nebudou tam vůbec, zato tam někde dole bude odkaz, který zobrazí "surová" osm data pro dané POI. Dále počítám s tím, že tam bude odkaz "další dny", kde se zobrazí otevírací doba pro celý následující týden. A případně i nějaká možnost zobrazit si, jak to bude vypadat v určitý den. |
Tak barvičky už mám, ale trochu jsem se zamotal v těch tabulkách, Snad to během příštího týdne dodělám do nějakého funkčního stavu (který pak může zase někdo jiný rozšířit ;-) ) |
Dobrá práce, těším se na commit :-) |
Tak ještě jedna úprava. Ty tři tečky nebyl dobrý nápad. Nahradil jsem je šipkou v nadpisu. |
@zbycz Nějaká nová verze na osmap.cz je teď v plánu? |
Už jsem zpátky, s těmi otvíracímí dobami fakt pěkný kus práce! |
OK, budu se těšit. |
@pedro042 Jak je to s cachováním té json vrstvy? Minulý týden jsem přidal pár odkazů na wikimedia_commons fotky a na osmap.cz je pořád nevidím. Ale změny, které jsem včera dělal jinde už na osmap.cz vidím. Například tento památník: http://www.openstreetmap.org/node/932349062 V odpovědi tag wikimedia_commons chybí: {"type" : "FeatureCollection", "features" : [{"type" : "Feature", "geometry" : {"type":"Point","coordinates":[18.37218,49.50821]}, "properties" : {"osm_type" : "node", "osm_id" : 932349062, "tags" : {"name": "Jan Palach", "historic": "monument"}}}, {"type" : "Feature", "geometry" : {"type":"Point","coordinates":[18.37269,49.50815]}, "properties" : {"osm_type" : "node", "osm_id" : 932349063, "tags" : {"name": "John Lennon", "historic": "monument"}}}]} |
@mkyral no teď je to takto: |
Aha. Takže zítra už by to bylo v pohodě :-D Ještě by se případně mohla přidat nějaká detekce změn, ale to by asi bylo náročnější než to znova vygenerovat. Takže to promazání po importu nových OSM dat by asi bylo lepší. |
Napsal jsem návrh na optimalizaci aktivní vrstvy - viz #100. |
vrstva je, bugy do nove issue. |
Jedna z věcí, která chybí na osm.org jsou aktivní POI. Ne vždy mi stačí, že v daném místě je restaurace XY. Chtěl bych vidět vice detailů (pokud jsou vyplněny). Například, zda mají stránky, zda budou mít otevřeno, zda je podnik nekuřácký. Nebo se hodí vědět, zda je parkoviště placené.
Bylo by tedy fajn mít možnost na danou ikonu kliknout a dozvědět se více.
Vzhledem k množství typů bodu zájmů by to chtělo je rozdělit do kategorií a ty zobrazit na základě vybrané mapy - rozcestníky budu zobrazovat pouze na turistické mapě. A zase na druhou stranu není potřeba zobrazovat na turistické mapě butiky. Zato restaurace, obchody s potravinami a parkoviště bude vhodné zobrazit jak na turistické tak i na standardní mapě.
Případně umožnit uživateli, aby si vybral, co jej zajímá.
//edit zbycz
připomínky k zobrazeným objektům zde wiki
.
TODO
<div>
popupu (ale spíše řešit zobrazením dat jinde - viz wiki)The text was updated successfully, but these errors were encountered: