aresta / ESP32_GPS

GPS device with ESP32 and OpenStreetMap data
GNU General Public License v3.0
30 stars 7 forks source link

Consulta Mapas #1

Closed jgauchia closed 10 months ago

jgauchia commented 1 year ago

Hola, he estado mirando tu proyecto y lo veo muy interesante. Actuamente estoy realizando algo similar (como hobby) y veo (si no me equivoco) que usas mapas OSM y el ESP vectoriza/renderiza el mapa. Yo actualmente estoy utilizando tiles de 256x256 en formato PNG pero mantener una zona amplia de un mapa requiere mucho almacenamiento. Me gustaría saber un poco más cómo lo has hecho así como que herramientas (externas o no) que has utilizado si no es mucha molestia.

Muchas Gracias.

aresta commented 1 year ago

Hola Jordi, si segueixo treballant en el projecte a estones. El que faig es descarregar la informacio vectorial de OSM, o sigui: punts, linies i poligons, que representen els camins, rius, edificis, bosc, etc. Aixo es fa al PC amb uns scripts amb l'area a descarregar com a parametres. Genera uns arxius binaris organitzats per requadres que has de copiar a la tarja micro-SD.

Al ser informacio vectorial ocupa molt menys en memoria i pots decidir quins elements vols descarregar, quins mostrar i amb quins estils, configurables. A la tarja micro-SD no hi ha problema, cap tot el que vulguis.

El ESP32 simplement busca a la tarja l'arxiu corresponent segons les coordenades i el carrega en memoria. El ESP32 Wrover te fins a 4MB de memoria usable. Puc carregar 4 o mes arxius alhora, cadascun d'uns 4x4 kms. Quan necessita mes els busca a la tarja i si cal descarta alguns dels que te en memoria.

Despres pinto les linies i poligons aplicant els estils configurables: color i gruix basicament. Tambe te l'advantatge que pots decidir que pintar a cada nivell de zoom. Amb imatges pre-renderitzades has de tenir un joc de cada, que ocupa encara mes. El desavantatge principal es que has de programar el pintar els elements, pero en el meu cas sera bastant minimalista per que sigui mes clar i usable. La idea es estandaritzar-ho mes, de forma que es pugui utilitzar a un altre projecte amb el mateix sistema d'arxius de descarrega i de renderitzacio, configurable.

Tot aixo funciona, pero encara i ha molt per fer.

Tambe he impres una PCB de prova amb tots els periferics conectats, per poder treballar i provar mes comodament. Quan pugui actualitzare la informacio i afegire els arxius de Kicad. Per cert, soc de Rubi :-)

jgauchia commented 1 year ago

Ostres!!! Ben a prop! Doncs li donare un cop d'ull si no t'importa al teu projecte . Fins ara jo feia servir tiles pero voldria provar de fer-ho vectorial

jgauchia commented 1 year ago

Si necessites qualsevol cosa pots contar amb mi, per si vols fer proves, o el que vulguis

aresta commented 1 year ago

Ok, perfecte, qualsevol colaboracio anira be. El que fare es separar la part d'extreure les dades en un repositori github separat, de forma que pugui servir a qualsevol projecte.

Seria l'aplicacio per extreure els elements de OSM d'una regio concreta i generar els arxius binaris amb les dades vectorias, que depres pots carregar al projecte que sigui, amb qualsevol MCU.

Els arxius estan organitzats en directoris. Cada arxiu conte un area aprox de 4x4 kms, amb les coordenades codificades al nom de l'arxiu. I cada carpeta conte 256 (16x16) arxius, amb les coordenades tambe codificades al nom. D'aquesta manera cada carpeta cobreix un quadrat maxim de 64x64 km. I pots tenir tantes carpetes com vulguis. Al teu codi, sabent les coordenades vas directe a buscar la carpeta/arxiu que necessites i les carregues en memoria.

jgauchia commented 1 year ago

Això seria ideal, es la part que em costa una mica de veure, que segur es fàcil , pero ara mateix no ho veig (deu ser la calor jajaja). Jo fa temps que estic fent aquest projecte, de fet va començar amb un ATmega , però ara amb el ESP i la Seva potència m'està ajudant a donar un cop endavant.

jgauchia commented 10 months ago

He aconseguit (amb el teu permís) integrar els mapes vectorials al meu projecte GPS, ara que amb calma he mirat tant el codi com el script per fer el binari , he aconseguit "entendre" com funciona..... dir-te que "xapó" , qualsevol cosa que necessitis , dins dels meus coneixements..... aqui estic...

Gràcies (ja t'he fet menció al meu projecte)

aresta commented 10 months ago

Hola! ok, tenia pendent contestar. Respecte a l'area pots fer un quadrat tan gran com vulguis, mentre capiga a la tarja SD. Nomes li has de pasar les coordenades del quadrat al script pbf_to_geojson.sh.

Pensa que encara esta poc provat, hi haura errors. Per exemple, no he provat amb coordenades negatives (lat o lon) quan ha de crear els noms de carpeta i arxiu. De lleida cap a l'oest per exemple. Potser haure de pasar a codificar aixo en hexadecimal, per que ha de caber en 8 caracters que es el limit dels noms d'arxiu.

I tambe crec que els poligons grans, com boscos, de vegades no els pinta be, per que els ha de tallar a quadrats per cada arxiu, i no tots els posibles casos estan previstos. Per exemple, el poligon pot tenir forma de ferradura i ha de quedar tallat en mes de 2 parts, per que entri al quadrat d'un arxiu. Pero almenys diria que no peta.

Si trobes qualsevol cosa avisa'm. Jo vaig fent quan puc, ara estic amb altres coses i ho tinc una mica aparcat, pero tornare. Salutacions!

jgauchia commented 10 months ago

Oks, no pateixis, Jo estic fent proves encara, he fet el cuadrat mes gran, etc .. l'únic es la limitació del tamany del arxiu json en el script py. Per la resta vaig provant costes. De nou, increíble com funciona

jgauchia commented 10 months ago

Aquí pots veure com em queda integrat en el meu GPS IMG_20231030_192645_763.jpg

Encara em queda molt per fer