Hărțile PUM/API și tehnici cartografice

Started by cristi5, July 11, 2017, 10:02:53 AM

Previous topic - Next topic

0 Members and 1 Guest are viewing this topic.

alexandruienci


cristi5

#511
Incepem un proces de mutare a randarii (desenarii) hartii proiectelor la server, pt a mari performanta la incarcare si la navigare interactiva. Stiu ca multi au probleme cu ea, pt ca se incarca prea multe date si desenarea dureaza mult in browser. La final, performanta ar trebui sa fie cam la fel cu harta calitatii drumurilor.

Cu ocazia asta am facut un docker-compose care permite instalarea facila a intregului stack pe o masina locala. Adica cine vrea sa dezvolte poate sa ruleze totul acasa. Poate e interesant de exemplu pt @RobertH.

Checkout:  https://github.com/cristianbogdan/road-coloring
Instructiunile de instalare sunt deocamdata in docker-compose.yml

Poate vor fi progrese si la rezolvarea problemei "unde e km 600 pe magistrala 200?" (sau pe A1...) si invers, "ce kilometru al magistralei/drumului este la coordonatele Lat, Long". Am discutat problema cu @frunzaverde mai demult, si este o "infasuratoare poligonala concava" (concave hull). Ieri m-am uitat un pic la functia PostGIS ST_ConcaveHull, cred ca o avem deja instalata in baza de date.




cristi5

Daca cineva e interesat, am descoperit ca, pe Windows, repo-ul git de mai sus trebuie clonat cu configurarea git  core.autocrlf=false. Altfel adauga git automat CR-LF la fiecare sfarsit de linie si nu mai merg shell-script-urile in containerele docker, pt ca alea folosesc linux...

cristi5

#513
Am facut progrese la harta proiectelor de infrastructura cu un student care apreciaza activitatea comunitatii si isi face lucrarea de diploma cu noi :)

Prototipul actual este focusat pe testarea vitezei de raspuns la pan si zoom, pe mobil, pt ca asta e problema majora a hartii actuale. Culorile nu sunt gata, nici selectarea de culori (va rog sa nu dati feedback despre culori ca nu a lucrat inca baiatul la ele). Va rog sa testati cu telefoane cat mai vechi si sa comparati cu harta actuala.

Prototipul este la:
https://pum.project-online.se/maps/infra-proj3/index-vt.html

Are doua straturi (layers) importante. Le puteti afisa si ascunde (pt comparatie) in colutul din dreapta-sus
- Projects (client), este desenat din date vectoriale, deci se pot ascunde unele proiecte/loturi, ca pe harta actuala (propuse, fara AC, CF, drumuri etc) ca la harta actuala. Deocamdata ascunderea nu e implementata dar nu trebuie sa fie probleme acolo.
- Projects (server), este desenat la server, deci este foarte rapid, dar nu se pot ascunde unele loturi, toate sunt vizibile, tot timpul.


------

PS: Cateva detalii tehnice: aceasta varianta este "castigatoarea" unui mic studiu de "fezabilitate" pe care am fost nevoit sa-l fac. Analiza Multi Criteriala a durat o saptamana si a comparat dupa urmatoarele criterii:
- ca framework de afisat harti: OpenLayers Vs Leaflet. A castigat Leaflet, pe care il foloseam deja la harta calitatii drumurilor dar nu l-am folosit la harta proiectelor pt ca necesita deseneare de vectori, unde OpenLayers era mai bun. Dar acum am gasit alte solutii (desenare raster, vezi mai jos)
- desenare la server Vs desenare la client Desenarea (raster) la server  duce fireste la performanta mult mai buna pe telefon dar din pacate ar fi necesare 17 straturi separate pt o harta ca cea de acum. Am testat cu 8 straturi si performanta e foarte slaba, deci am abandonat deocamdata ideea desenarii la server. Am pus totusi stratul "Projects raster" mai sus, sa vedeti ce rapid este :). Dezavantajul este ca nu se pot ascunde proiecte propuse, etc.
- Ramane desenarea la client, pe telefon adica. Pt asta intrebarea este cum ajung datele (inclusiv formele geometrice) la client.
- Date monolit Vs date tiles. Harta actuala are un fisier mare (monolit) de cam 1Mb care se incarca initial . Alternativa este sa se aduca doar tiles (tzigle) cu date ("vector tiles") de care este nevoie pt nivelul actual de zoom. Am aflat ca mai exista o alegere:
- Date tiles generate la server Vs Date tiles obtinute la client. In urma testelor a reiesit ca performanta cea mai buna este cu Date monolit sparte in tiles la client. Afisarea unui monolit in Leaflet (cu SVG cel putin) are peformante slabe.
- Desenare la client: raster (canvas) Vs SVG (obiecte vectoriale). Desenarea Canvas este mult mai rapida pe telefoane vechi si am adoptat-o. Dezavantajul fata de SVG este ca ca odata desenat, nu se poate face click pe un segment, ca nu mai stie ce e acolo (sunt doar pixeli de o anumita culoare, nu "obiecte"). Solutia a fost sa trimitem click-ul la server, si intrebam "este vreun proiect la latitudinea si longitudinea asta?". Pare ca merge bine. Il puteti apela direct :)
https://pum.project-online.se/click?latLng=46.05965291336496,23.580436706542972&max=300

Probabil ar trebui incercata si desenarea raster (canvas) de date tiles generate la server. Sunt curios cat s-ar castig ca performanta. Am testat asta cu SVG, peformanta este acceptabila, dar functioneaza numai cu o versiune veche de Leaflet si nu permite afisarea anilor de terminare a proiectelor deasupra segmentelor.

mirceaeliade

Mult prea putine optiuni de selectare si culori

RobertH

@mirceaeliade
QuoteCulorile nu sunt gata (va rog sa nu dati feedback despre culori ca nu a lucrat inca baiatul la ele).

Testati performanta hartii pe telefoane, nu culorile.  :)

GIV

#516
se pare ca prototipul imi functioneaza pe laptopul de la munca fata de adresa clasica a hartii care ramanea blank de cateva luni :lol:

si pe telefon si pe laptop munca se misca fluent( in conditii de semnal slab pe telefon) si imi place mult noul font. pare ca ar fi de iphone

Stef

Se mișcă mult mai bine și mai fluid, panningul nu mai are probleme dacă dai zoom din ctrl+ sau pinch pe touch.
PS: la ambele hărți traseul A8 pe partea ieșeană e greșit, varianta de lucru actuală fiind varianta 2, deși încă Jasper nu a dat ok.

rt25

Poate nu am inteles eu corect cerintele, dar tare mi-ar placea sa vad si "Satellite view" asa cum aveam si in harta veche.

ultrasbz

Se misca mult mai bine pe Galaxy S7 Edge. Varianta veche era inutilizabila.

cristi5

@rt25 punem si satelitul, dar neavand efect asupra performantei (pe care o testam acum), nu l-am pus inca


cristi5

Quote from: oneLess on November 27, 2022, 10:07:11 PMHarta PUM/API se poate configura cumva, local pe device, ca atunci când o deschizi să apară personalizată? În sensul că îmi doresc doar anumite check-box-uri activate, legenda ascunsă poate? Poate un fișier de configurare gen .ini ?

E pe lista aceasta functie, o vom adauga

Vlad94

Felicitari pentru harta. Se misca foarte bine pe telefon.

klax187

#523
Google Pixel 5
Prototipul se misca infinit mai bine decat harta veche.
Totusi, exista un mic lag la incarcarea hartii. pana in 3 secunde pentru incarcarea sectiunilor noi la navigare, si pana in 1 secunda la zoom in/out.

L.E. asta in conditii bune de internet (WiFi)

cristi5

@klax187 prima asteptare este dupa date. Datele au cam 1Mb.  A doua nu stiu.

Cand zici lag te referi doar la desenul segmentelor sau si la harta de fundal?

———

Nu mi-a placut cum se comporta la pan (deplasare la nivel de zoom fix) pe iphone si am adaugat preincarcare tile-urilor din jurul celor vizibile, folosind EdgeBuffer

https://gis.stackexchange.com/questions/353058/preload-map-tiles-that-are-outside-current-map-view-in-leaflet