Weekend Prosjekt: Pre-Loading Maps for Open Source Navigation Apps

Kart-basert navigasjon: det er en av morderen apps for alle mobile plattform. Den eneste fast punkt er å få kartene. Nedlasting av kart fliser på fly er standardløsning for de fleste navigasjon apps, men pre-loading er mer fornuftig når det er mulig. Dessverre har åpen kildekode navigasjon apps opparbeidet seg et rykte for clunky og klosset kart-lasting grensesnitt. Denne helgen, la oss se på en enklere metode, slik at du kan få på veien raskere.

En historisk ekspedisjon

Jada, når du har solid datadekning og en billig-men-rask mobil plan, kan du streame maps on-demand – men selv da nedlastingshastighet kan til en gjennomgang på akkurat feil tidspunkt. Plus, kan du glemme streaming kart hvis du reiser til ryggen skogen eller på vei utenlands med et forhåndsbetalt SIM. Pre-lasting kart settene omgår hele problemet, pluss for mange apps det tillater deg å beregne ruter mens offline også.

Problemet er at åpen kildekode-apps gjøre pre-lasting inn i en kolossal smerte. Noen gir en pre-loading grensesnitt som faller flatt – for eksempel ved at du må gå inn uformatert lengde- og breddegrad for hjørnepunktene manuelt, ved å ikke tillate deg å se hvilke kart det allerede har lagret, eller ved å forsøke å laste ned hver zoomnivået i databasen. Andre bare har noen pre-loading grensesnittet i det hele tatt, krever manuell konfigurasjonsfil redigering å peke app mot høyre lagringskatalog.

Hvis du hadde ubegrenset diskplass, kan du alltid ta tak i hele OpenStreetMap globale datasett, men for alle praktiske formål den måten folk flest vil fungere er å holde et lite sett med kart på sin enhet til enhver tid – hjem, destinasjonsbyen for en bestemt tur, og så videre.

kompliserende forhold litt er det faktum at ulike navigasjon apps utnytte forskjellige kartkilder. Hvis du fotturer langrenn, har du sannsynligvis vil ha et topografisk kart, så OSM gate kartet kilde ikke kommer til å bli noe bra, uavhengig av hvor lett det er å partisjonere av de relevante grenselinjer og nedlastings fliser. Hvis du bruker mer enn én app så typisk du doble mengden av arbeid som er involvert, siden de fleste navigasjon apps har sin egen pakke format og katalogstruktur – selv når du arbeider med det samme kartet kilde.

Atlas Tid

Vi kan forenkle prosessen ved hjelp av Java-program Mobile Atlas Creator (eller MOBAC for kort). MOBAC inkluderer en web kart renderer som du kan velge området som du er interessert i å generere en offline kart kilde, pluss kontroller som lar deg konfigurere zoomnivå og andre alternativer. Når du har din " atlas " (som er MOBAC begrep for enkelte offline kart bundle) konfigurert, kan du ha MOBAC batch-laste flisene og
konfigurere dem for navigasjonsenheten av ditt valg.

Du kan laste ned MOBAC fra prosjektets side på SourceForge.net. For de fleste brukere, alt du trenger å gjøre ta tak i .jar pakken knyttet til under " Last " på hjemmesiden. Det krever Java 1.6 eller nyere, som er standard billettpris for Linux. Utvikleren anbefaler at du også laste ned den siste versjonen av Java Advanced Imaging fra Sun (eller formodentlig, Oracle), selv om dette er valgfritt. En undergruppe av kartprogrammer også kreve at SQLite database; download delen linker til den aktuelle Java-bibliotek.

Den nåværende versjonen av MOBAC er versjon 1.9 beta 5, som offisielt støtter 28 forskjellige navigasjon og kartlegging apps. Det er andre som bruker et kompatibelt format, men ikke gjør hovedlisten. De fleste er turn-by-sving mobile navigasjonshjelpemidler som AndNav, OsmAnd, og Osmdroid, men off-road verktøy som Mobile Trail exporer, spesialitet apps som Nokia Sports Tracker og GPS-logging apps støttes også – inkludert de for dedikert GPS hardware som Magellan og Garmin-enheter.

MOBAC Usage

Etter at du har lastet ned de nødvendige filene, cd i den resulterende katalogen og lansering MOBAC med ./start.sh &. Den venstre vindusrute har en rekke utvid innstillinger dokker; klikk på pilen i hver dock tittellinje for å se innholdet. Den høyre ruten er for GPX data, som er en annen nok use case som vi ikke har tid til å diskutere det. I sentrum er kartvisningen widget.

atlas-building prosess er litt sære, men du vil snart få taket på det. &Quot; Kart kilde " utvalg dock til venstre kan du velge hvilke Kartet vises i kartvisningen. " Atlas Content " lenger ned viser kart komponentene du har valgt så langt. Som standard starter MOBAC et nytt atlas prosjekt kalt " Unnamed atlas " ved oppstart. Du kan jobbe med mer enn én om gangen — bruke " ny " knappen for å opprette en. Bare holde et øye med hvilke atlas prosjektet er valgt mens du jobber: hver gang du gjør et valg på kartvisningen, kan du klikke på " Legg utvalg " knappen for å legge den til foreløpig valgt
atlas prosjektet

I kartvisningen widgeten på høyre museknapp fungerer som en ". grab " kontrolleren, som du kan panorere og bla i kartet. Venstre museknapp lar deg tegne et utvalg rektangel på kartet. Rullehjulet zoomer inn og ut. Når du har valgt den regionen du ønsker å lagre, gå til " zoom-nivåene " forankre og sjekke hvilke nivåer du ønsker å laste ned. Det er en del prøving og feiling involvert, men hvis du er ny kan du lære mye ved å besøke OSM web renderer og ser zoomnivået der. Du trenger sannsynligvis ikke mer enn to eller tre nivåer; det rett og slett an på detaljnivået du ønsker.

Hva gjør MOBAC eksepsjonelt nyttig, derimot, er at du ikke trenger å stoppe på en
Utsnittsrektangelet eller ett
kart kilden. Du kan legge til flere byer (på et høyt zoom-nivå) og en stor fargeprøve av motorveien (på et lavere zoomnivå) alle til ett atlas. Du kan også ta OSM gate data og OSM offentlig transport eller turkart, og flette dem alle i én atlas

Når du har alle dine valg som er gjort, velger ". Konverter atlas format " fra " Atlas " meny. Denne dialogen lar deg velge output format av kartene. README-filen (som også er tilgjengelig via Hjelp-menyen) beskriver hvilket format er nødvendig for hver av de støttede apps. For andre apps, må du se på nettet for dokumentasjon (Mappero, for eksempel, bruker den " OSMTracker flis storage " format, som synes å være populære blant de åpne kildekode-programmer, selv om AndNav har sin egen). Hvis du har installert Java Advanced Imaging pakken nevnt tidligere, kan du velge noen tilpassede fliser behandlingsalternativer (for eksempel redusere fargedata for å spare plass), men det er ikke nødvendig. Når du er klar, klikker du " Opprett atlas " og MOBAC vil laste ned alle flisene i dine atlas valg, konvertere dem, og pakke dem for bruk på enheten.

På dette punktet, er alt som gjenstår er å kopiere fersk-preget atlas til din mobile enhet . Her prosessen varierer fra app til app. Start ved å klikke på " Åpne Atlas Folder " knappen i MOBAC er " suksess " dialog. Hver atlas prosjekt du har bygget vil bli lagret på ett sted, slik at du kan opprettholde et lokalt bibliotek. Enten kan du ganske enkelt dra og slippe et atlas mappe fra harddisken til en USB-tilkoblet enhet, eller om du må navigere inni den og dra undermapper uavhengig avhenger av appen. Start med å konsultere README fil; Hvis du ikke finner instruksjoner der, gå til MOBAC wiki, som har sider på emnet – ofte knyttet til den virkelige verden how-to guider.

Radio Free data

Du har kanskje lagt merke til at det er en lang liste med kart kilder springende ned sidelinjen av MOBAC hjemmeside, men det Jeg har bare diskutert bruker OSM-baserte datasett. Det er fordi Robert, MOBAC ledende utvikler, har nylig gjort en endring i programmet som deaktivert fleste kommersielle og proprietære kartkilder. Som han forklarer på forumet, gjorde han ikke gjøre dette fordi kartdata ble lisensiert på en måte som er uforenlig med MOBAC er GPLv2, men fordi vilkårene for bruk for en håndfull av de mer litigious kartleverandører eksplisitt forbyr såkalte " bulk " . nedlastinger via sine API

Om din personlige bruk av MOBAC utgjør en " bulk " forespørsel avhenger av hvor mye du velger, men Robert har ikke lyst til å jobbe det ut individuelt. I stedet, han deaktivert problematiske tjenester, og nå sier han vil reaktivere noen av dem som et klart uttrykt avtale kan nås. Han ber MOBAC brukere å kontakte kartet tjenesteytere heller enn å gjøre avtale for å lage selv.

Jeg har alvorlig tvil med hensyn til om at tredjeparts forhandlingsteknikk vil fungere, men i mellomtiden jeg har ikke noe imot : OSM fungerer overalt jeg har reist, og det er eksplisitt gratis. Du kan lese mer om kart kilde installasjonsprosessen i samme tråd, inkludert hvordan du legger til kart kilder som er gratis, men ikke tilbyr noen TOS i det hele tatt (eller rett og slett ikke svarer på henvendelser). Det er viktig å legge merke til, men at en web-kart kilden har for å møte noen tekniske krav for å fungere. Den MOBAC området har en liste over kart kilder som ikke er kompatible, og et verktøy for å hjelpe deg å avgjøre om en ny kilde oppfyller kravene.

!

Det tar Westward Ho bare noen få sekunder for MOBAC å laste ned og konvertere heftig kart samlingene hvis du har en rimelig rask Internett-tilkobling. Gjør du det en gang kan være en liten praktisk i forhold til å lage en enkel egendefinert kart sett, men hva gjør MOBAC verdt å holde rundt er hvordan det forenkler prosessen på en gjentagende basis.

Som nevnt ovenfor, kan du lagre gamle atlas for senere gjenbruk; MOBAC kan også konfigureres til å friske allerede lastet ned flisene slik at oppdateringer til kartet er lagt til din eksisterende atlas. Den lar deg også til å bokmerke kartvisninger, slik at du raskt kan innstillinger-besøk re; Dette er spesielt nyttig når du blir vant til hva dine foretrukne zoomnivåer er for ulike typer transport. I tillegg MOBAC utmerker seg på grunn av sin støtte for flere kart lag. Hvordan uinteressant ville det være hvis du måtte velge mellom veikart eller
offentlig transport, men ikke begge deler?

Åpen kildekode-navigasjon apps har kommet langt i løpet av kort tid, spesielt på Android, men de har alle fortsatt rom for å forbedre seg i offline kart støtte. Det er en forståelig ettertanke hvis du er utbygger, hvor offline og online-kart er slike svært ulike funksjoner. Som er hvorfor det er slik en god ting MOBAC er tilgjengelig for å bygge bro over gapet.