Vrstva aktivních POI #4

Open
mkyral opened this Issue Jan 7, 2016 · 156 comments

Projects

None yet

9 participants

@mkyral
Member
mkyral commented Jan 7, 2016

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

  • poladit zobrazené věci (tj. dořešit na wiki)
  • poladit zoomy a co v nich -> třeba praha staré město teď nic moc (též pořešit na wiki)
  • zavřít popup při vyjetí myší z <div> popupu (ale spíše řešit zobrazením dat jinde - viz wiki)
@mkyral
Member
mkyral commented Jan 8, 2016

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.

@zbycz
Member
zbycz commented Jan 8, 2016

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...

@mkyral
Member
mkyral commented Jan 8, 2016

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

@zbycz
Member
zbycz commented Jan 8, 2016

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.

@walley
Member
walley commented Jan 8, 2016

ten postgis bude hodne potreba, ulehci to tunu veci.

a prez geojson to stejne bude komunikovat s javascriptem, takze tam bude tak jak tak.

@mkyral
Member
mkyral commented Jan 8, 2016

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

@zbycz
Member
zbycz commented Jan 8, 2016

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.

@walley
Member
walley commented Jan 8, 2016

v praci sem presvedcil jednoho kolegu at nastuduje spatial extenzi a pak me to nauci:)

@mkyral
Member
mkyral commented Jan 8, 2016

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).

@zbycz
Member
zbycz commented Jan 8, 2016

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.

@zbycz zbycz added mapa server labels Jan 8, 2016
@zbycz zbycz modified the milestone: 0.2 Jan 8, 2016
@mkyral
Member
mkyral commented Jan 8, 2016

Tady je overpass query pro všechny rozcestníky v ČR.
Soubor má přes 5MB. A to jsou jen rozcestníky. Záleží kolik typů POI bude podporováno, ale asi to bude chtít nějaký větší disk :-D

[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.

@zbycz
Member
zbycz commented Jan 8, 2016

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.

@mkyral
Member
mkyral commented Jan 8, 2016

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.

@zbycz
Member
zbycz commented Jan 8, 2016

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.

@mkyral
Member
mkyral commented Jan 8, 2016

No tak to v tom případě bude potřeba vyřešit jinak. Teď to generuje toto:

-rw-r--r-- 1 marian users   857  1. led  1970 1093_692.json
-rw-r--r-- 1 marian users  1628  1. led  1970 1094_693.json
-rw-r--r-- 1 marian users   868  1. led  1970 1095_691.json
-rw-r--r-- 1 marian users   867  1. led  1970 1095_692.json
-rw-r--r-- 1 marian users  1631  1. led  1970 1095_693.json

Smysl jsem nezkoumal ;-)

Ad zobrazení)
Moc se mi nelíbí překrývání jedné ikony druhou. Viděl bych spíše na nějaký malý špendlíček nebo tak něco - jen aby bylo jasné, že bod je aktivní a lze na něj kliknout.

@mkyral
Member
mkyral commented Jan 8, 2016

Tak jsem zkusil v rychlosti něco najít a tohle vypadá docela slibně: https://github.com/mapbox/geojson-vt

@zbycz
Member
zbycz commented Jan 8, 2016

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

@pedro042
Contributor

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.
Nejrychlejší by asi bylo dát do gdalu postgis jako datasource. Všechna ta webová API přes PHP či Python sice ne moc, ale přeci jen (zbytečně) zdržují.
Co by vlastně ideálně potřebovat openstreetmap.cz server, aby to mohl zobrazit jako klikací?

@mkyral
Member
mkyral commented Jan 10, 2016

No v podstatě potřebuje něco ve stejné struktuře jako je png dlaždice (z/x/y.geojson)
Ke každé mapové dlaždici se dotáhne dlaždice, kde bude seznam POI na této dlaždici. Takže je můžeš na mapu přidat a udělat tak podklad "klikací".

Za chvíli už snad konečně budu mít vygenerovaná příkladová data pro rozcestníky, tak se pak ozvu.

@mkyral
Member
mkyral commented Jan 10, 2016

Tak vygenerováno pro zoomy 10 - 18.

$ python3 geojson2tiles.py tur_rozcestniky_CR_20160108.geojson tiles 18
IN: tur_rozcestniky_CR_20160108.geojson; ROOT: tiles; ZOOM: 18
Done. Generated: 13135 tiles in 2.02s

Zazipované to má 28 MB.
@zbycz Na ftp jsem nahrál soubor tiled_guideposts.zip - můžeš si hrát ;-)

Tak uvažuji kolik giga bude mít export pro všechna POI.

@pedro042
Contributor

@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 :)

@mkyral
Member
mkyral commented Jan 10, 2016

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.

@zbycz
Member
zbycz commented Jan 10, 2016

@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

@pedro042
Contributor

@zbycz na čem myslíš, že teď pracuju? :-))

@zbycz
Member
zbycz commented Jan 10, 2016

😍

@mkyral
Member
mkyral commented Jan 10, 2016

@zbycz - pedro tam má celou OSM databázi ;-)

OK. Zatím to necháme a uvidíme, kolik toho nakonec bude. V každém případě bude potřeba rozdělit jednotlivá POI do kategorií a tahat to podle toho, jaká mapa a na jakém zoomu je zobrazena.

@pedro042
Contributor

Pojďte na jabber, když tak

@mkyral
Member
mkyral commented Jan 10, 2016

@pedro042 Já tam jsem, ale nemám tě v kontakt listu.

@zbycz
Member
zbycz commented Jan 10, 2016

Možná to bude tím, že jsem tam odsud s pedrem už odešli :)

@severak
Member
severak commented Jan 11, 2016

(možný offtopic - nedalo by se na tohle použít UFT grid?)

@mkyral
Member
mkyral commented Jan 11, 2016

@zbycz Jo vy jste mysleli tenhle Jabber: openstreetmap@conf.netlab.cz
No tak na ten jsem zapomněl :-(

@zbycz zbycz referenced this issue Jan 11, 2016
Open

Dopravní mapa #6

@pedro042
Contributor

musím do lopaty, jinak json layer je na dobré cestě, ale raději from scratch. TileStache má mnoho drobných a dohromady velmi otravných problémů.

@mkyral
Member
mkyral commented Jan 11, 2016

@pedro042 @zbycz Bude nějaká možnost definovat v url, které typy POI chci vidět? Normální vs. turistická vs. dopravní mapa? Viz #6

@mkyral
Member
mkyral commented Jan 11, 2016
@zbycz
Member
zbycz commented Jan 11, 2016

Dle mého je klíďo možné vrátit všechno (co se týče POIek) a filtrovat až na straně leafletu.

Pro tu dopravní mapu mi nepřijde vhodný geojson s liniemi vedení, to by bylo moc dat - lepší je to mít jako tile overlay.. což?

@Krakonos
Member

Tile overlay s vedením linek, POI pro zastávky.

@mkyral
Member
mkyral commented Jan 11, 2016

Dle mého by to zase tak hrozné nebylo. Ale asi by bylo lepší tahat to přes jiné API. Takže jako základ by byly tiles a až kdyby bylo potřeba, tak by se dotáhl seznam linek. Časem možná něco takové udělám.

@Krakonos
Member

Já ti nevím, vždycky si vzpomenu na to jak se firefox plazí, když otevřu něco s hodně věcma na mapě a raději bych se tomu vyhnul (taskmana používám v chrome, protože v FF to nejde... a to nemám šunka stroj; podobný případ je třeba project-gc.com s hodně POI). Co se stane, když si člověk otevře Prahu a linkové vedení? :-)

@mkyral
Member
mkyral commented Jan 11, 2016

Taskman jsem si jen parkrát otevřel a fungoval rychle. Možná to bude tím, že mám hodně RAM. POI v project-gc nepoužívám, ale ta mapa na gc.com funguje rychle - a že tam těch keší je.

Ale samozřejmě to bude potřeba poladit.

@Krakonos
Member

Já mám 32GB; nemyslím si, že je to nedostatkem RAM. gc.com si myslím, že konsoliduje keše při velkém oddálení, ale máš pravdu, že je řádově rychlejší než project-gc .

@zbycz
Member
zbycz commented Jan 11, 2016

Gc.com vykresluje keše jako rastrový tile a od nějakého přiblížení přidává
Geojson, aby šlo klikat..

//edit překlep autocorrect: přidává Geojson

@pedro042
Contributor

http://tile.poloha.net/json/{z}/{x}/{y}
momentální setting:

  • zoom 15 a více (aby si někdo nechtěl stáhnout gigový json)
  • pouze poi, ale není problém přidat polygony atd.
  • využívám funkci "isphysical" vytvořenou kdysi na naléhání Pavla Machka, abychom nesahali na POI při importu adres. Tak teď jí používám reverzně, tedy zobrazuji jen POI
  • využívám tabulku se seznamem nepoužitelných tagů, rovněž kdysi vytvořenou pro import adres
    Tak dejte vědět, pls, zda se to dá dostat do leafletu
@mkyral
Member
mkyral commented Jan 12, 2016

@Krakonos Tak jsem si dneska ráno zase po delší době taskman otevřel a s tím jak se tam navýšil počet čtverců, tak velmi výrazně klesla výkonnost. Zoomování se strašně seká. Pohyb po mapě v rámci zoomu funguje docela dobře.

No bude to chtít hodně ladit.

@mkyral
Member
mkyral commented Jan 12, 2016

@pedro042 Má představa je, že POI budou rozděleny do několika kategorií a každý zoom bude mít nastaveno, co se má posílat.

Například v malých přiblíženích (zoom 8) budou aktivní jen kraje, krajská města a třeba chko - takže si třeba kliknu na Prahu a zobrazí se mi OSM informace o Praze.

S tím jak se budu více přibližovat, tak se začnou objevovat další detaily. Jde jen o to, definovat, co by mělo být na kterém zoomu vidět.

@zbycz
Member
zbycz commented Jan 12, 2016

Jo, souhlasím. To chce vydefinovat. V zásadě by to mělo reflektovat co se tak zobrazuje na mapě v tom zoomu :-)

@jzvc
Contributor
jzvc commented Jan 12, 2016

Alternativne viz http://osmose.openstreetmap.fr/en/map/, zobrazi omezeny pocet od stredu. Kdyz mas malej zoom, tak mas proste uprostred shluk a okolo nic. Ale neomezeuje te to v rozletu = pokud je nodu danyho typu malo, zobrazi se bez ohledu na zoom.

@zbycz
Member
zbycz commented Jan 12, 2016

ad openstreetmap.fr) Tak to je hrozně wtf. To by se mi nelíbilo.

Jinak myšlenka je i taková, že ty POIky z tohohle issue možná nebudou na mapě vidět, jen změní kurzor v tom místě a budou klikací. Asi některé. Tj. kliknu na název Praha (který je v TILE podtím) a zobrazí mi to info o Praze. ... aka ten GC.com/Google Fusion tables - má objekty v tiles a geojson jen definuje klikatelnost.

@mkyral
Member
mkyral commented Jan 25, 2016

Tak jsem si trochu hrál. Idea byla, že vezmu kód rozcestníků, mírně upravím a bude to. Bohužel tak jednoduché to není. Rozcestníky vrací vše v BBoxu, Petrova vrstva chce z/x/y souřadnice. Pro to zdá se moc podpora není, našel jsem jen externí knihovnu: https://github.com/glenrobertson/leaflet-tilelayer-geojson

Zatím jsem tedy chtěl jen zkusit centrální dlaždici, ale ani to mi nefunguje - zase to padá na JSON.parse(data) :-(

@zbycz Co jsi s tím nette posledně dělal?

@pedro042
Contributor

hoj, tu vrstvu jsem dělal dle nejlepšího vědomí a svědomí :-) aby se s tím pracovalo co nejlépe právě s ohledem na leaflet. Jestli se to nehodí a potřebuješ se na data odkazovat nějak jinak, tak řekni jak.

@zbycz
Member
zbycz commented Jan 25, 2016

Možná na to bude potřeba napsat vlastní adaptér - ale právě přijde mi, že pro nejlepší možnou funkčnost je X/Y/Z geojson ta nejlepší volba.

Vrstva na rozcestníky to dělá "naiviním" způsobem. Ono vykreslit všechny rozcestníky v čr je asi v pohodě, ale u POIek je dle mého třeba tohle robustnější řešení.

@mkyral teď nevím co s nette máš na mysli?

@mkyral
Member
mkyral commented Jan 26, 2016

@pedro042 a udělal jsi to přesně tam jak jsem chtěl. To jsem ovšem netušil, že to leaflet neumí :-) Ale neboj, nějaké změny se najdou.

@zbycz já myslel to, jak nám nette.ajax převáděl json na objekt sám od sebe. Nicméně to nebude ono, protože tam byl problém jen na osmap.cz. Na lokále to fungovalo. Takže to bude jiný problém.

@mkyral
Member
mkyral commented Jan 26, 2016

Tak jsem ajax přesvědčil, aby mi to nepřeváděl na objekt a následně zjistil, že odpověď serveru je sice validní JSON soubor, ale není to validní GeoJSON soubor:

 {
    "type": "FeatureCollection",
    "features": [{
        "osm_type": "point",
        "osm_id": 2211730557,
        "geometry": {
            "type": "Point",
            "coordinates": [18.3175990607676, 49.6673171043956]
        },
        "tags": {
            "bus": "yes",
            "highway": "bus_stop",
            "name": "Frýdek-Místek, Místek, Olešná",
            "public_transport": "platform"
        }
    }]
 }

Invalid GeoJSON

Line 3: GeoJSON features must have a type=feature property
Line 3: "properties" property required

Správně to je takto:

 {
    "type": "FeatureCollection",
    "features": [{
        "type": "Feature",
        "geometry": {
            "type": "Point",
            "coordinates": [18.3175990607676, 49.6673171043956]
        },
        "properties": {
            "osm_type": "point",
            "osm_id": 2211730557,
            "bus": "yes",
            "highway": "bus_stop",
            "name": "Frýdek-Místek, Místek, Olešná",
            "public_transport": "platform"
        }
    }]
 }

viz: http://geojsonlint.com/

@mkyral
Member
mkyral commented Jan 26, 2016

Třeba nějak takhle: osmcz/poloha.net_postgres@8825c16

@pedro042
Contributor

Díky za patch, zkoukl jsem jen zběžně a nahrál. Už je to OK?

@mkyral
Member
mkyral commented Jan 26, 2016

Taky díky. Už jsem to testoval a funguje. Ses nekoukal do logu? :-D

Demo - načítá všechny POI na obrazovce

Určitě to bude chtít nějaké změny. Vyfiltrovat lavičky, přechody. možná i brány a naopak přidat areály škol nemocnic a podobně. Většinou to jsou oblasti a momentálně se posílají pouze body.

@zbycz
Member
zbycz commented Jan 26, 2016

Pěkný nástřel -- jinak upozorňuju, že vycházet z toho sidebar WorkInProgress není úplně vhodné, ty commity se nikdy nesmí objevit v masteru - předtím to odladím a do masteru commitnu jeden. :-) Koukám že jsem to raději neměl zveřejňovat :))

A přimlouval bych se neseskupovat POIky jako rozcestníky, myslím že v případě stejné polohy by se měl na jeden klik zobrazit popup se všemi. Uživatel nechce postupně vše proklikávat.

@zbycz
Member
zbycz commented Jan 26, 2016

Jinak na loadování těch XYZ geojsonů jsem našel toto: https://github.com/glenrobertson/leaflet-tilelayer-geojson -- zkoušel jsi?

@mkyral
Member
mkyral commented Jan 26, 2016

Tak už jsem to demo aktualizoval - už umím celou obrazovku. Tilelayer-geojson jsem našel, ale ještě nezkoušel. To seskupování asi bude vlastnost té geoJSON vrstvy. Nevím, jestli to jde vypnout. Asi si budeme muset napsat vlastní vrstvu, pěkně na míru ušitou.

S těmi panely byl plán takový, že si na nich něco zkusím zobrazit. Ale nevím, nevím jestli se k tomu dostanu. Zatím mne docela zmáhá i blbé zobrazení několika bodů. Je to zatím jen demo, abych viděl, co se s tím dá dělat a taková návnada pro někoho schopnější, co by to někam dotáhl :-D

Jestli z toho nakonec něco bude, tak se z toho taky udělá jeden commit. Jestli tě to znervózňuje, tak to můžu přesunout do jiné branche, založené na master.

Mimochodem, jak z té vrstvy vyhážu zbytečnosti jako jsou přechody, lavičky, brány a pod? Nějak se mi to nedaří a ty jsi tvrdil, že to bude hračka :-D

Stejně si pořád myslím, že lepší bude omezit ten geojson na straně serveru. Aby pro určité zoomy vracel jen omezený set POI. A čím větší přiblížení, tím více méně významných POI se zobrazí. Jen zatím nevím. jak to na straně serveru řešit.

@jzvc
Contributor
jzvc commented Jan 26, 2016

Ty vsechny POI davaj mojemu 4jadru uz 3 minuty 60% kour. Jen klik na ten tvuj demo odkaz ;D. A nevypada to, ze by ten script chtel nekdy skoncit. Navic to v logu hlasi hromady chyb

[22:33:50.843] Error: Invalid GeoJSON object. @ http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js:8

Edit:zjevne se mu nelibi, kdyz tam nic neni:
[22:49:07.415] "Data: {"type" : "FeatureCollection", "features" : null}"
[22:49:07.415] Error: Invalid GeoJSON object. @ http://cdn.leafletjs.com/leaflet-0.7.3/leaflet.js:8

@mkyral
Member
mkyral commented Jan 26, 2016

No je to jen demo, chce to trochu více poladit. Hlavně v Praze toho asi bude trochu více.
Mně to docela funguje, ale je pravda, že mám 16GB RAM :-D

Invalidní objekty znamenají, že na dané dlaždici není žádné vhodné POI. To taky bude potřeba nějak poladit.

Edit:
A koukám, že občas se ta vrstva nesmaže a počet POI se pak zdvojnásobí...

@jzvc
Contributor
jzvc commented Jan 26, 2016

Jop, to sdruzovani je vlastnost pluginu kterej pouzivas, stejne jako to, ze neudelas ruzny ikony ruznych objektu. Na to si musis vybrat neco jinyho.

http://leafletjs.com/plugins.html#markers--renderers

@mkyral
Member
mkyral commented Jan 26, 2016

No ono ve výsledku by stejně na mapě nemělo být nic vidět, jen by se změnil kurzor myší a po kliknutí by se vysunul panel s detaily.

Ale to už je na mne trochu moc velké sousto...

@walley
Member
walley commented Jan 27, 2016

groupovani dela tohle markerClusterGroup, kdyz to zrusis tak budou markery samostatne

@zbycz
Member
zbycz commented Jan 27, 2016

Tak mi to nedalo a implementoval jsem to pomocí té geojson-tile:
vizte http://rawgit.com/osmcz/osmcz/master/index.html#map=18/50.07555/14.43436&layers=A
(stačí najet myší - netřeba klikat)

Až trochu profiltrujeme co se ukazuje, bude občas možné schovat některé kolečka a nechat jen ten hand cursor. Jinak bych tam rád viděl tyhle maki ikonky.

Pro filtrování na straně js stačí do pointToLayer doplnit něco jako if(feature.properties.tags.amenity).

.


btw, omlouvám se, Mariáne, že jsem ti "přepsal" práci, neber si to osobně... Zareagoval jsem na tvé Je to zatím jen demo, abych viděl, co se s tím dá dělat a taková návnada pro někoho schopnější, co by to někam dotáhl :-D tak snad pro dobro věci... 😃

@zbycz zbycz closed this Jan 27, 2016
@jzvc
Contributor
jzvc commented Jan 27, 2016

Tohle je pri max zoomu i vyrazne rychlejsi, ale jen do odzoomovani. Si myslim ze fitrovat treba uz zaslany data a nedelat to scriptem, to by na rychlosti nic nezmenilo, a co se polygonu tyce, prevest je uz na strane serveru na body.

@severak
Member
severak commented Jan 27, 2016

Až bude potřeba naprogramovat obsah toho popupu nabízím své služby.

@mkyral
Member
mkyral commented Jan 27, 2016

No problém, ale issue bych ještě neuzavíral. Ještě ani zdaleka nejsem hotovi.
Co mi vadí je, že popup po odjezdu myši sám nezmizí. A možná bych vrátil, že je na něj potřeba kliknout.

Btw, proč to na zoomu 19 není? To je přesně ten zoom, kde bych to chtěl ;-)

@mkyral mkyral reopened this Jan 27, 2016
@mkyral
Member
mkyral commented Jan 27, 2016

@jzvc Přesně tak. Zkusím se na to večer podívat. Když tak mi to @pedro042 maximálně strhá :-D

@severak No asi by to chtělo nějakou funkci na formátování toho popupu. Pro začátek třeba aktivní odkazy pro website, contact:website, wikipedia. Dále třeba pěkně zobrazit otevírací doby. U rozcestníků pak zobrazit jeho fotku. Časem jistě přijdeme na další vylepšení.

@zbycz maki ikonky pěkné, ale asi ne pro každou podkladovou vrstvu. Třeba z podkladem z osm.org by se to podle mne hodně bilo. Ale ikonka by mohla být v tom popupu (nebo panelu, záleží, kde se to nakonec bude zobrazovat)

@zbycz zbycz added a commit that referenced this issue Jan 27, 2016
@zbycz zbycz active-layer: icons + maxzoom #4 a6cec9e
@zbycz
Member
zbycz commented Jan 27, 2016

@jzvc velikost přenášených dat rozhodně problém nebude. JS zvládá i větší objemy. Seká se to jedině proto že je moc bodů na mapě a to vyřeší

  1. vhodnější posílané POI (posílá se teď něco zbytečného??)
  2. filtrování zobrazených bodů = na straně té pointToLayer - dokážu si představit, že se třeba vykreslí jen amenity a zbytek bude aktivní pouze po "najetí myší"

@severak nejlépe prosím nakreslit/naprototypovat jak by sis ten vnitřek představoval :-)

@mkyral jj, to zavření bylo takové gesto, je tam ještě fůra práce.

  • aby popup mizel možná by šlo reagovat jak na point-mousout tak popup-mouseout .. ale je to docela práce.. klidně doprogramuj. A nebo by šlo využít jen nějaký "3rd party tooltip" nikoliv ten leafletový popup..
  • maxzoom už jsem nastavil 25. Jinak asi bude třeba rozmyslet jaká data tahat - třeba pro zoom 18 stejně už máme všechna data, takže není potřeba loadovat ještě 19 - stačilo by využít stávající.. To bude chtít nějak poladit.

Jinak přidal jsem tam dočasně maki ikonky - k odladění - pak je fakt - že to chce zejména do toho popupu a ne na všechny podklady...

http://rawgit.com/osmcz/osmcz/master/index.html#map=17/50.09743/14.40330&layers=bA

@mkyral
Member
mkyral commented Jan 27, 2016

@zbycz No minimálně mi přijde, že tahat informace o tom. že je někde přechod (bez toho, že je ten přechod něčím speciální) je docela zbytečné.

@zbycz
Member
zbycz commented Jan 27, 2016

Souhlas - to by chtělo někam sepsat a pak upravit v petrově geojson serveru.

Co třeba to psát sem: do wiki - může upravovat kdokoliv i z vás přihlížejících :-)

https://github.com/osmcz/osmcz/wiki/Objekty-pro-Aktivni-vrstvu

@severak
Member
severak commented Jan 27, 2016

@pedro042 Některé objekty mají pro náš účel prakticky bodový charakter, ale v OSM jsou uloženy jako plochy. Bylo by fajn je do budoucna převádět. (Typický příklad jsou kostely).

@walley
Member
walley commented Jan 27, 2016

na
http://map.openstreetmap.cz/work2

sem pridal zavirani popupu po dragu mapy
takle to @mkyral chtel? nebo vylozene po pohnuti mysi?

@walley
Member
walley commented Jan 27, 2016

taky sem zkousel prodlouzit timer na otevreni popupu abych mel sanci kliknout a otevrit to sam a to se mi taky libi vic:)

@severak
Member
severak commented Jan 27, 2016

Návrh na optimalizaci: Nenačítat data dlaždic, když se uživatel přesouvá po mapě rychle. (tj. počkat určitý čas po posunutí mapy než načteme data). Nenačítat data, když uživatel ještě zoomuje (tj. počkat určitý čas po zoomu s načítáním dat).

@zbycz
Member
zbycz commented Jan 27, 2016

@walley ten drag je supr - to commitni. Ten timeout preferuju rychlejší - stejně chvíli trvá než myší zakotvím na tom mrňavém puntíku, tak pak je to takové okamžité. Ale do budoucna stejně možná místo popupu ten boxík vlevo nahoře - viz #76

@severak to je velmi dobrý nápad!

@walley
Member
walley commented Jan 27, 2016

jsou ty tiles na poloha.net plneny v zavislosti na zoomu, nebo se to bude filtrovat az na klientovy?

@zbycz
Member
zbycz commented Jan 27, 2016

Zatím to vypadá že tiles jsou plněny stále stejně. Ideální bude když určíme, na kterých zoomech má co být (nastřelil jsem na wiki, upravujte!) - a potom by to šlo možná i poladit, aby se tahaly data jen pro jeden zoom ze skupiny.

@zbycz
Member
zbycz commented Jan 27, 2016

@severak teď nad tím ještě přemýšlím - proč vlatně nenačítat tak jak to je teď? Vždyť to je právě kvůli tomu řešeno dlaždicově. Pokud profiltrujeme množství, aby to neloadovalo tolik dat, už to problém asi nebude. Nebo jo?

@Krakonos
Member

Když se něco otevře samo, mělo by se to také zavřít samo, když už to nechcu; docela mě irituje klikat mimo, abych viděl co je pod popupem. Jinak musím říct, že perfektní! Geojson verze mi chodí mile rychle na zoomu 19, na 17 je ale staré město jako s modemem (a ne, neměl bych si pořídit lepší počítač, quad core 3.4GHz s 32GB RAM by měl stačit :-)); to si ale určitě každý už všimnul :-)

@mkyral
Member
mkyral commented Jan 27, 2016

@walley Super. Nějak takhle jsem si to představoval. Žádné klikání navíc.

Ad tiles - ano, posílá se vždy vše. Na možnost filtrování podle zoomu se mrknu večer. Mám představu, že se to udělá tabulka: zoom, key dle které se to pak bude filtrovat. Úprava konfigurace pak bude jednoduchá. Ale budu to muset probrat s @pedro042

@severak
Member
severak commented Jan 27, 2016

(Jinak pro nás co provozujeme historické počítače by se hodila mít možnost načítat data dlaždic jen on demand.)

@mkyral
Member
mkyral commented Jan 27, 2016

@severak Pro vás, co provozujete historické počítače je tu možnost to úplně vypnout :-D

Ale mohla by tu časem být podobná funkcionalita jako je na osm.org "průzkum prvku". Jen s tím rozdílem, že by se načetla jen ta jedna dlaždice s POI.

@pedro042
Contributor

Tedy dnes tolik spamu z githubu :-)
Polygon převést na bod není problém. Když to udělám teď, budou se sypat další nesmysly, jako jsou domy a vše, co je v polygonu.
Filtrovat podle zoomu také není problém, problém je rozhodnout se, co by to mělo být.
Myslím, že jako první rozhodnutí bychom měli udělat, zda:

  • vyjmenujeme si, jaké objekty a jaké tagy nás zajímají
    nebo naopak
  • vyjmenujeme si, jaké objekty a jaké tagy nás NEzajímají a vše ostatní do json dlaždic zahrnout (včetně polygonů, převedených na bod).
    Tak co myslíte?
@mkyral
Member
mkyral commented Jan 27, 2016

Já jsem pro první možnost Případně kombinaci. Prostě udělat tabulku:

Zoom | key | value | flag

Možnosti by pak byly:
Value is null - platí pro všechny hodnoty klíče
Value = 'crossing' - platí jen pro danou kombinaci

A flag by pak byl 'I'nclude a 'E'xclude. To pak dovoluje ta pravidla definovat flexibilně. Někdy vzít všechno, jindy jen něco.

Akorát nevím co s případy, kdy je na jednom bodů více různých tagu a vznikne konflikt.

@pedro042
Contributor

Výbornej nápad. Konflikt lze vyřešit jednoduše - bude-li objekt v INCLUDE, zahrne se, ale nezahrnou se ty jeho tagy, které jsou v EXCLUDE.
Zároveň se nezahrnou tagy, které budou v nějakém globálním EXCLUDE (created_by apod.)

@jzvc
Contributor
jzvc commented Jan 27, 2016

ad data - problem nebude ani tak velikost, jako to, ze to vse musi ten script prechroupat, a to i v pripade, ze udelas nejaky filtr na strane scriptu.

ad popup - asi by to chtelo nejaky sablonky - podle typu POI.

ad prechod - samo vcetne podobnych, by mozna nebylo od veci nektera POI jen kreslit odpovidajicim obrazkem, netreba aby se u nich zobrazovaly dalsi informace. Tzn "neaktivni" POI.

@Krakonos
Member

Ad popup: já bych si představil, aby věci místo v popupu byly v sidebaru (až bude). Totiž když si otevřu velký poup třeba k restauraci, tak se chci také podívat, jak se tam dostat, a popup mi zastíní velkou část blízké mapy...

@zbycz
Member
zbycz commented Jan 27, 2016

@pedro042 good job, těším se hlavně na ty polygony jako central_pointy.

Ad popup) viděl bych to spíše na ten levý roh. Jinak návrh popupu se řeší v
#76 - šablonky pro různé druhy dobrý nápad, doplňte případně prosím k
tomu issue..

@pedro042
Contributor

Je to tam, zatím bez polygonů. Pokud se to takto osvědčí, přidám polygony jako body a třeba i čáry jako čáry :-)
@zbycz pošli ssh klíč, chceš-li tu tabulku editovat/plnit.

@jzvc
Contributor
jzvc commented Jan 27, 2016

Smi to ukrad pod rukama ... tak sem postnul co sem stihnul ;D, shopy bych dal tak od zoom 17, je jich strasne moc.

@pedro042
Contributor

nějak to zlobí, špatná logiga, trpělivost ...

@mkyral
Member
mkyral commented Jan 27, 2016

@pedro042 My počkáme. A až to odladíš, můžeš přidat práva na tu sekvenci? Chtěl jsem přidat place=town pro zoomy 8 - 15

pedro=> insert into osmtables.jsonobjects (zoom_min, zoom_max, k, v, flag) values (8,15,'place', 'town', 'I');
ERROR:  permission denied for sequence jsonobjects_id_seq
@mkyral
Member
mkyral commented Jan 27, 2016

Na wiki jsem přidal konfigurační tabulku i s popisem. Teď už jen doplnit další hodnoty. Zatím mám Geografie a základ turistiky.

Geografie

min zoom max zoom klíč hodnota flag
8 15 place city I
9 15 place town I
12 15 place village I
11 25 natural peak I
@pedro042
Contributor

@mkyral Práva na seq jsou, ale zatím tam, prosím, nic nepřidávej, aby se mi neměnily výsledky během testování pod rukama ;)

@mkyral
Member
mkyral commented Jan 27, 2016

@pedro042 OK. Já si to chtěl jen vyzkoušet ;-)

@pedro042
Contributor

Už to snad vypadá lépe, tak testujte, pls.

@jzvc
Contributor
jzvc commented Jan 27, 2016

Asi se jste neco nezadarilo ???
Priklad http://www.openstreetmap.org/node/2728439403

node vidim, ale ma jen operator, amenity je fuc a tudiz neni ani ikona.
http://tile.poloha.net/json/19/282300/176324

@pedro042
Contributor

jj, to byla ještě chybka, už je opravená

@pedro042
Contributor

Tak jestli se vám chce, můžete ládovat tu tabulku

@mkyral
Member
mkyral commented Jan 27, 2016

No mezitím jsem dal na wiki něco málo dohromady. Mrkněte prosím. Doplnění vítána.

@mkyral
Member
mkyral commented Jan 27, 2016

Tak jsem naládoval města a vesnice. Chtělo by to upravit min zoom aktivní vrstvy:

 id | zoom_min | zoom_max |    k    |     v     | flag
----+----------+----------+---------+-----------+------
  6 |        8 |       15 | place   | city      | I
  8 |        9 |       15 | place   | town      | I
  9 |       12 |       15 | place   | village   | I
 10 |       11 |       25 | natural | peak      | I
@pedro042
Contributor

nejen zoom, ale vyhodit filtr isphysical. je to.

@mkyral
Member
mkyral commented Jan 27, 2016

Jo. děkuji. Už to vypadá lépe. Jen koukám, že to trochu trvá - Jak na tom je server? Stíhá? Nevykopnou nás, že ho moc přetěžujeme?

@pedro042
Contributor

no, load 25, tak to pozastavim trochu. Budeme muset poladit.

@jzvc
Contributor
jzvc commented Jan 27, 2016

Bude treba mechanismus jeste upravit kvuli mnoztvi dat ... mrkni trebas kolem Decina, jen se to tam modra.

Asi by slo resit kombinaci vice tagu, ale asi ne rozpal hodnot (population, ele, ...). Muzou ale nastat i neciselny potreby. Regularni vyrazy? Jejich vykon pocitam nebude zadnej zazrak.

Edit: To tomu dava slusne ;D, mam tu jeden stroj co dela deduplikaci dat v zalohach, a load je stabilne na 15.

@pedro042
Contributor

byly to samé dlaždice nízkých zoomů, 7-9, tak tam toho nesmí být tolik :)

@pedro042
Contributor

Dočasně jsem zapnul filter na zoom 12 a víc. Nižší teď nepůjdou, dokud to nepřezkoumáme.

@mkyral
Member
mkyral commented Jan 27, 2016

natural=peak jsem přesunul až od zoomu 14
Ty nižší zoomy by se daly předgenerovat ne? města a vesnice se zase až tak často nemění.

@mkyral
Member
mkyral commented Jan 27, 2016

BTW: nějaká pěkná 'maki' ikonka pro rozcestník, informační tabuli a mapu?

@jzvc
Contributor
jzvc commented Jan 27, 2016

Ikon je malo, pro spoustu veci nic pouzitelnyho. Leda vyrobit vlastni.

@pedro042
Contributor

@mkyral teď je to tak, že v dané oblasti vezme prakticky všechny otagované body, k nim přiřadí všechny tagy, ty si propojí s konfigurační tabulkou a na základě tohoto rozhoduje, zda objekt bude zařazen do dalšího zpracování nebo ne. Takže musí projít statisíce objektů. Nevim, zda by pomohl index na tu konfigurační tabulku. Spíš ne, je moc mrňavá.
Dal jsem natvrdo primární filtr. Pokud zoom <=13, pak se v prvním kole vyberou jen řádky s place is not NULL. Těch je v celé ČR cca 25000, což už je OK.
Cokoli jiného než place se tedy dostane do zpracování až od zoomu 14 (bez ohledu na konfig. tabulku). Také momentálně nic jiného než place v zoomech pod 14 není.

@pedro042
Contributor

@mkyral ty man_made s čárkou na konci, třeba observatory, ta čárka je schválně? To nebude fungovat.?

@mkyral
Member
mkyral commented Jan 28, 2016

Záměr to nebyl. Jen překlep. Opravím.

Edit: Opraveno. Zároveň jsem upravil zobrazování obchodů - myslím. že je 14 moc. Posunul jsem min_zoom na 17. Podle mne to bohatě stačí. Když budu chtít detaily, tak si mapu stejně zvětším.

Edit2: Jinak myslím, že to funguje docela dobře. Odpoledne ještě poladím amenity. Na menších přiblížení bych zobrazoval jen věci typu škola, nemocnice a čerpací stanice. Zbytek pak jen při přiblížení.

@jzvc
Contributor
jzvc commented Jan 28, 2016

Jen pro info ... na place praglu radsi nezkousejte najet ... ;D vyjede z toho takovej seznam, ze to odroluje celou mapu do ksa.

@mkyral
Member
mkyral commented Jan 28, 2016

No ty name:xx tagy bude lepší ve výchozím stavu schovat. Ale chtělo by to ten panel a alespoň základní zobrazení záznamu. Taky bych si dokázal představit, že si budu moci vybrat určitý typ (třeba amenity=restaurant) a všechno kromě restaurací se schová, takže zůstanou jen restaurace plus v panelu se zobrazí jejich rozklikávací seznam.

@zbycz
Member
zbycz commented Jan 28, 2016

Souhlas, na panelu zapracuju.

Jinak to vybírání restaruací by bylo moc hezké propojit s vyhledáváním (#22). Napíšu "restaurace" nebo přímo "amenity=restaurant" a krom toho že to dotáže nominatim ještě příslušně profiltruje aktivní vrstvu..

@jzvc
Contributor
jzvc commented Jan 28, 2016

Chtelo by to podklad vazne uplne bez textu, ale kam az moje pamet saha, na nic takovyho jsem jeste na osm nenarazil. A jak tak googlim, lidi kteri neco takovyho hledaji je pomerne dost.

A druha vec, pokud by tu aktivni vrstvu chtel nekdo pouzivat na fotomape, bude treba tomu udelat barevnou alternaci - ta sedo-cerna na tom neni prakticky vubec videt. Podklady na kterych jsou vlastni sileny barvy bych asi neuvazoval vubec, v tom se ztrati cokoli.

Edit: hus ... nasel sem co sem hledal, zazrak
http://{s}.tiles.wmflabs.org/osm-no-labels/{z}/{x}/{y}.png

Edit2: Jen skoda, ze na ni jsou vyrenderovany POI, ale porad lepsi nez dratem do oka.

@walley
Member
walley commented Jan 28, 2016

cista mapa bez poi a textu by sla vektorove, stalo by za to to prozkoumat

@mkyral
Member
mkyral commented Jan 28, 2016

@jzvc No původně ani ikonky v plánu nebyly. Jen aktivní plochy :-D

@mkyral
Member
mkyral commented Jan 28, 2016

@jzv Jinak si myslím, že přepnout barevný styl pro foto mapu nebude až takový problém. Viz vrstevnice.

@zbycz
Member
zbycz commented Jan 28, 2016

Aktivní plochy mají smysl pokud jsou ta data podtim vidět v tile. Když tam
nic není tak je ikonka fajn. Ale chce to zvážit nad jakým podkladem co
ukazovat.

Jinak ikonky se každopádně budou hodit do popupu, to že jsou na mapě se
hodí zejména k ladění toho co se zobrazuje. Co s tím pak se uvidí..

@walley, co se týče vektoru už jsem s tím experimentoval, mrkni do větve
mapbox-gl, dá se ten jejich map style supr konfigurovat.
čt 28. 1. 2016 v 17:48 odesílatel Marián Kyral notifications@github.com
napsal:

@jzvc https://github.com/jzvc No původně ani ikonky v plánu nebyly. Jen
aktivní plochy :-D


Reply to this email directly or view it on GitHub
#4 (comment).

@mkyral
Member
mkyral commented Jan 28, 2016

Tak jsem trochu upravil amenity, přidal areoway, landuse a několik obecných tagů (website, contact:website, wikipedie, description a inscription). Víz wiki (melo by to plus mínus souhlasit s aktuálním nastavením v databázi).

Ještě poznámka k wiki:

textová poznámka (note, vídám jí u telefoních budek)

Note je poznámka mezi mappery. Pokud tam je něco jiného, mělo by se to přesunout do description.

Zbývá highway a public_transport. Plus nějaké speciality které mne nenapadly.

@pedro042 Ty center body pro plochy budou, nebo to bude problém? ;-) Budovy obecně bych spíše vynechal, pouze pokud by na sobě měli nějaký jiný zajímavý tag - shop, amenity, leisure, historic...

@pedro042
Contributor

Znovu díky Mariánovi za super nápad na konfigurační tabulku, velmi se osvědčila. I za naplnění daty. Center body by neměl být problém. Dneska jsem ladil výkon. Apache+PHP je rozbitý už nejméně 15 let. Otřesně zachází s persistentními connection do Postgre. Non-persistant je škoda, přidává zbytečný overhead a persistentní, blbec, pořád přidává. Má otevřeno třeba 50 connections, nic nedělá. Někdo chce novou dlaždici, tak si otevře 51. Dodnes je to neopravené. Ještě že máme pgbouncer a pgpool, což je vlastně proxy pro databázi. Apache si udělá své desítky konekcí k proxy, proxy si udělá třeba 10 do DB a ty opravdu používá. Tím se ušetří spousta RAMěti a v případě špičky neběží 100 paralelních query, ale třeba jen 10 a zbytek proxy řadí do fronty. Celkový dopad na výkon je velmi pozitivní. Včera nebyl problém server utahat, dneska je to tak, že si spíš zničím disk doma jak šuká, ale server má load třeba 0.6 (oproti 25 je to přeci jen "trochu" pokrok) ;-). Teď to vypadá odladěně, jak zoomy na objekty, tak výkon, takže další kolo budou ty očekávané plochy do centrálních bodů. A co leafletisté, už umíte čáry a opravdové plochy? :-). Se těším!

@mkyral
Member
mkyral commented Jan 29, 2016

Díky Petrovi za naprogramování ;-)

Koukal jsem na centrum Prahy - fakt zabiják. Zoomy 18 a 19 v pohodě, ale 15, 16, 17 docela zabité. Při zazůmování se mi na nějakou dobu kompletně sekne prohlížeč, než se to načte. Pohyb po mapě pak už docela v pohodě. Ale ten začátek nic moc.

Uvažuji, jestli nepřesunout většinu obchodů a barů až na zoom 18. Do těch předchozích zoomů bych pak dal restaurace a supermarkety (případně ještě něco)

@severak
Member
severak commented Jan 29, 2016

@mkyral Viz třeba http://www.openstreetmap.org/node/536114644 pro příklad té note. A takových je více.

@mkyral
Member
mkyral commented Jan 29, 2016

@severak - rozhodit na dvě a poznámku smazat. Tohle není nic, co by se mělo normálnímu uživateli ukazovat. Na to je fakt description

Nicméně note bychom mohli ukazovat ve speciální vrstvě pro mappery - třeba spolu s fixme

@mkyral
Member
mkyral commented Jan 29, 2016

@pedro042 Leaflet samozřejmě čáry a plochy umí. A GeoJSON taky. Ale chtělo by to nějaké optimalizace toho js. Ať to běží i na slabších konfiguracích - čím víc objektů, tím je to horší.

Mimochodem: nezkoumal jsem, jak to mají dělané na lpis portálu ale načítání je docela rychlé a to včetně vysvícení plochy pod kurzorem. Třeba bychom se mohli trochu inspirovat.

@zbycz
Member
zbycz commented Jan 29, 2016

Tak jsem trochu poladil ten popup a udělal release. Připomínky vítány, nicméně přes víkend jsem pryč.

btw, takový offtopic - na mapě nám funguje i URL pro custom marker:
http://openstreetmap.cz/?mlat=50.79&mlon=15.16&zoom=17

@mkyral
Member
mkyral commented Jan 29, 2016

@zbycz offtopic: pěkné, ještě nějaké gui k tomu ;-)

Otevřel jsem #80

@pedro042
Contributor

Nasazeny "body" zájmu z ploch.
Issues:

  • jsou-li tagy na cestě místo na relaci, tak to nefunguje. Fungovalo by to, ale (zatím?) pomalé
  • KDE má ten bod být? Momentálně je na ST_PointOnSurface, variantou je ST_Centroid. ST_Centroid má výhodu v tom, že je uprostřed v těžišti a zároveň je na vykreslené značce v dlaždici (pokud taková značka je), ale u některých tvarů může být těžiště mimo vlastní objekt. Tam se hodí víc ST_PointOnSurface
  • @zbycz zavedením NE-bodů vznikla chyba, že ne každé osm_id je node_id. V tom JSON je osm_type (node, way, relation) - je potřeba na to pamatovat při generování odkazu na osm.org z popupu.

Testujte, prosím.

@jzvc
Contributor
jzvc commented Jan 29, 2016

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.

@mkyral
Member
mkyral commented Jan 30, 2016

Trochu jsem to ty shopy poladil, ale centrum Prahy furt zabité :-(

@zbycz zbycz added a commit that referenced this issue Feb 1, 2016
@zbycz zbycz active-layer: highlight current item #4 1368b4f
@pedro042
Contributor
pedro042 commented Feb 5, 2016

@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.

@pedro042
Contributor
pedro042 commented Feb 5, 2016

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 ;-)

@pedro042
Contributor
pedro042 commented Feb 5, 2016

Až na tu rychlost v prohlížeči to už vypadá dost pěkně.

@zbycz zbycz referenced this issue Feb 5, 2016
Open

Kde a jak pomoct #89

1 of 8 tasks complete
@zbycz
Member
zbycz commented Feb 5, 2016

javascript nerozhoduje jestli to dělá disk nebo ram. To je věc prohlížeče. Ale poladit výkon je rozhodně priorita :-)

@pedro042
Contributor
pedro042 commented Feb 6, 2016

Přidaná tilecache přímo do databáze :), teď už ani 1000 prohlížečů dohromady nebude mít šanci to ucpat.

@zbycz
Member
zbycz commented Feb 6, 2016

Až to pushneš na github, dej vědět, zajímalo by mě jak jsi tu tilecache nakonfiguroval 👍

@pedro042
Contributor
pedro042 commented Feb 6, 2016

Už.
Čištění/aktualizace cache tam zatím není. Počkám alespoň pár hodin, aby se naplnila. Každá nacacheovaná dlaždice má timestamp. Předpokládám, že po aktualizaci dat z Geofabrik aktualizuji v cache nízké zoomy (například 7-12) a vyšší zoomy (13-) smažu. To se v praxi teprve uvidí.

@mkyral
Member
mkyral commented Feb 24, 2016

Tak jsme si včera hrál se zobrazováním opening_hours. Celkem by to šlo:
oh01

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:
oh02
Správně by tam mělo být Zítra: 17:00 - 01:00. Stejně jako dnes.
Bug je v opening_hours.js nahlášený už přes půl roku a zatím nic :-(
Na Stodolní to je docela problém.

@vop-cz
vop-cz commented Feb 24, 2016

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)

@mkyral
Member
mkyral commented Feb 24, 2016

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.

@mkyral
Member
mkyral commented Feb 25, 2016

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 ;-) )

@zbycz
Member
zbycz commented Feb 26, 2016

Dobrá práce, těším se na commit :-)

@mkyral
Member
mkyral commented Feb 28, 2016

Tak zdá se, že to více méně funguje jak má. Akorát se mi nedaří rozjet ten link na další dny :-(

Update: tak se povedlo. Když tak tomu někdo dejte pěknou css fazónu. Líbilo by se mi barevné odlišení soboty a neděle. Případné návrhy na vylepšení jsou vítány.

oh_002 oh_003

@mkyral
Member
mkyral commented Mar 1, 2016

Tak ještě jedna úprava. Ty tři tečky nebyl dobrý nápad. Nahradil jsem je šipkou v nadpisu.
Máme teď týden na testování, @zbycz se fláká někde na horách :-)

oh03 oh04

@mkyral
Member
mkyral commented Mar 7, 2016

@zbycz Nějaká nová verze na osmap.cz je teď v plánu?

@zbycz
Member
zbycz commented Mar 7, 2016

Už jsem zpátky, s těmi otvíracímí dobami fakt pěkný kus práce!
Nasadil jsem to na web - release jsem nedělal. Mám rozdělaných pár pěkných featur, snad tento týden dokončím a releasneme.

@mkyral
Member
mkyral commented Mar 7, 2016

OK, budu se těšit.

@mkyral
Member
mkyral commented Mar 14, 2016

@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
JSON dlaždice: http://tile.poloha.net/json/17/72225/44729

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"}}}]}
@pedro042
Contributor

@mkyral no teď je to takto:
delete from jsontiles.tilecache where created < now() - interval '7 days 6 hours'; delete from jsontiles.tilecache where created < now() - interval '3 days 6 hours' and z > 13;
takže 3 dny od data vytvoření položky v cache. Týden jsou prakticky jen obce/place.
Asi by se to mohlo mazat každý den; ono to vytvořit znovu zase tolik netrvá.

@mkyral
Member
mkyral commented Mar 14, 2016

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ší.

@severak
Member
severak commented Mar 29, 2016

Napsal jsem návrh na optimalizaci aktivní vrstvy - viz #100.

@zbycz zbycz added a commit that referenced this issue Apr 13, 2016
@zbycz zbycz active-layer: refactoring #4 66eb1e9
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment