"2GIS" er et elektronisk kart og katalog i én smarttelefon. "2GIS" - elektronisk kart og katalog i én smarttelefon Inngang til bygget, diagrammer og kontaktinformasjon

2GIS er en av de beste applikasjonene for Android, og gir praktiske geografiske kart med kontaktinformasjon for selskaper og transportforbindelser. Mange land rundt om i verden støttes, inkludert små byer og tettsteder, og mobilprogrammet fungerer offline.

Applikasjonen vil hjelpe deg hvis du ønsker å bygge den mest optimale ruten i en ukjent by, og vi anbefaler også last ned 2GIS som en god oppslagsbok med telefonnumre, adresser og åpningstider til bedrifter eller organisasjoner. For å bruke verktøyet uten Internett-tilkobling, last bare inn ønsket plassering i databasen på forhånd. Du kan gjøre dette direkte fra applikasjonen, du vil ikke oppleve noen problemer. I tillegg har mobilprogrammet ikke bare et oversiktlig, brukervennlig grensesnitt, det inneholder også høykvalitets og detaljerte kart med tydelig presentert visuell informasjon. Og du vil kunne plotte ruten både med personlig bil og til fots, og som et tillegg - en ruteplan for offentlig transport.

Unike funksjoner i mobilprogrammet:

  • Tilgjengelige, oversiktlige kart med detaljert informasjon om byens selskaper uten internettforbindelse: åpningstider, kontakter, adresser og bilder
  • Plassering av offentlige organisasjoner i nærheten: kafeer, restauranter, kinoer, butikker, drosjer, etc.
  • Bygge ruter som tar hensyn til alle typer transport: metro, trolleybuss, buss, tog og til og med en elvebuss, eller bare en turvei
  • Navigering gjennom de største kjøpesentrene og supermarkedene: diagrammet viser plantegninger, toaletter, matområder og annen viktig informasjon
  • Data fra tjenesteorganisasjonene dine: leverandører, sykehus, boligkontorer osv.

    Dermed vil du aldri gå deg vill, ikke bare et sted på gaten, gå glipp av stoppet ditt eller gå glipp av svingen din, men du vil også kunne navigere perfekt inne i bygninger. Det er hvorfor 2GIS for Android Den regnes som den beste navigatoren og oppdageren, som er i stand til å overskygge alle andre applikasjoner av denne typen. Verktøyet kan forstå spørsmål bokstavelig talt, du kan til og med skrive inn populære navn, applikasjonen vil fortsatt finne det du trenger.

  • 2GIS-applikasjonen har nå en navigator. Vi har lært å "kjøre" langs et spor, stemme manøvrer, automatisk omorganisere ruten, beregne reisetid, veilede brukeren til inngangen til en bygning eller organisasjon, tatt i betraktning gjerder og barrierer - og alt dette i et ærlig offline miljø . Vi har lenge tatt hensyn til trafikkork (med mindre de krever internett), åpne broer og stengte gater. Foreløpig inneholder navigatoren vår minimumskravet. Litt senere skal vi lære den å advare om for høye hastigheter, fartshumper og trafikkkameraer, sette opp en nattmodus og gjøre ruter på bom- og grusveier valgfrie. For å bruke den må du oppdatere 2GIS på smarttelefonen eller laste den ned fra AppStore eller Windows Store. For Android slippes oppdateringen gradvis, fra og med 22. august (vil være tilgjengelig for hele publikum innen september).

    Og i dag vil vi fortelle deg hvordan 2GIS-navigatoren forutsier bilens posisjon og jevnt beveger pilen langs ruten. Tross alt er det kvaliteten på å veilede brukeren langs ruten som bestemmer ergonomien til grensesnittet til enhver moderne navigator, den enkle orienteringen på bakken og aktualiteten til manøvrer.

    Mesteparten av tiden blir føreren av en bil tvunget til å overvåke veien, så selv et raskt blikk på skjermen til en enhet med et navigatorprogram bør være nok til å få den mest nøyaktige og rettidige informasjonen om sin egen plassering i forhold til rute og omkringliggende objekter. Denne tilsynelatende enkle funksjonaliteten krever løsning av mange tekniske problemer å implementere. Vi vil vurdere noen av dem.

    GPS-markør og rute

    For å indikere brukerens plassering på kartet bruker mange navigatører (og vår var intet unntak) en spesiell GPS-markør i form av en pilspiss eller ganske enkelt en trekant, som intuitivt indikerer bevegelsesretningen. I tillegg må markøren være godt synlig på kartet, så fargen er vanligvis veldig forskjellig fra bakgrunnen, kantene er i tillegg skissert, etc.

    I det enkleste tilfellet kan du vise enhetens posisjon på bakken ved å lese koordinater fra en GPS-sensor og plassere en markør på det tilsvarende stedet på kartet. Allerede her står vi overfor det første problemet - målefeilen, som selv under forhold med godt signal lett kan nå 20–30 meter.

    For å svare på det vanlige spørsmålet "Hvor er jeg?" Denne visningsmetoden vil være ganske tilstrekkelig, spesielt hvis du også tegner en nøyaktighetssirkel rundt markøren med en radius lik feilestimatet. For navigering må du imidlertid finne på noe bedre, fordi en sjåfør som beveger seg langs en bygate er usannsynlig å være fornøyd med en GPS-markør plassert inne i et nabohus eller, enda verre, på en passasje i blokken.

    En rute bygget av programmet til destinasjonspunktet og alltid til stede i navigasjonsskriptet hjelper til med å løse problemet. Ved hjelp av noen triks kan vi "trekke" et punkt på kartet til ruten, og utjevne noe av målefeilen til GPS-sensoren. Til en første tilnærming kan attraksjonen betraktes som projeksjonen av et punkt på en rutelinje. Betraktning av nyansene, samt metoder for å oppdage avgang fra ruten, er dessverre utenfor rammen av denne artikkelen.

    Ved å ta i bruk den angitte tiltrekningsteknikken, kan vi abstrahere fra todimensjonale geografiske koordinater (breddegrad-lengdegrad eller hvilken som helst annen) og gå videre til en endimensjonal koordinat - en forskyvning i forhold til begynnelsen av ruten, målt for eksempel, i meter. Denne overgangen forenkler både teoretiske modeller og beregninger utført på brukerenheter.

    Viser geolokalisering over tid

    Den diskrete karakteren til dataene som mottas fra GPS-sensoren er et annet problem ved implementering av brukerveiledning. Ideelt sett oppdateres koordinatene en gang per sekund. La oss vurdere flere alternativer for å vise geoposisjon i tide og velge den mest passende for oppgavene våre.

    1. Den enkleste måten er å umiddelbart klikke på ruten ved mottak av hver ny avlesning fra sensoren og vise den tilsvarende plasseringen på kartet. Blant fordelene er det verdt å merke seg den eksepsjonelle enkle implementeringen, høy, på en måte, nøyaktighet (tross alt, her viser vi bare satellittdata uten å gjøre noen alvorlige endringer i dem) og minimal beregningskompleksitet. Den største ulempen er at markøren i dette tilfellet ikke beveger seg over kartet i vanlig forstand, men "teleporterer" fra punkt til punkt. I hovednavigasjonsscenarioet er kameraet (virtuell observatør er et begrep fra datagrafikkfeltet) knyttet til en GPS-markør, så slike teleporteringer fører til en skarp "rulling" av kartet langs ruten, og som et resultat, til desorientering av sjåføren, spesielt ved høye hastigheter, når bilen kjører en betydelig avstand mellom geoposisjonsavlesninger. Målet vårt er å hjelpe brukeren, ikke forvirre ham, så denne feilen er allerede nok til å utelukke dette alternativet fra vurdering.

    Den eneste måten å unngå desorientering på er å flytte GPS-markøren jevnt, uten "teleportering", noe som betyr at du må flytte den mye oftere enn geoposisjonsavlesningene kommer. For å sikre slik bevegelse er det nødvendig å på en eller annen måte beregne mellompunkter mellom reelle avlesninger fra sensoren og bruke dem til neste avlesning mottas. Den spesifikke tilnærmingen til å beregne disse mellompunktene er verdt å være spesielt oppmerksom på, siden den til slutt vil påvirke den generelle ergonomien til navigatorprogrammet i stor grad.

    2. Den andre måten å vise brukerens plassering på er forbundet med den mest åpenbare tilnærmingen til å generere mellompunkter - interpolering mellom de siste virkelige GPS-avlesningene. Poenget er å flytte markøren fra den nest siste prøven til den siste i en viss spesifisert tid, ved å beregne mellompunkter med den nødvendige frekvensen ved å bruke en av de kjente matematiske funksjonene (det enkleste alternativet er lineær interpolasjon). Å bruke en navigator på denne måten er mye mer praktisk, men det har også ulemper.

    En av de mest ufarlige er behovet for å stille inn interpolasjonstiden på forhånd. Å sette den til ett sekund vil bare fungere bra i det ideelle tilfellet nevnt ovenfor, når det er tiden som vil gå mellom GPS-avlesninger. Hvis det går mindre tid, spiller det ingen rolle, du kan ganske enkelt begynne å flytte fra den nåværende posisjonen til et nytt mål. Men hvis det er mer, må markøren stå stille og vente på nye koordinater fra sensoren, selv om brukerens bil kan være i bevegelse på dette tidspunktet.

    Det er et mer alvorlig problem. I det øyeblikket en ny prøve kommer, er markøren i beste fall på det forrige virkelige punktet. Fra brukerens synspunkt introduserer vi en annen posisjoneringsfeil, hvis størrelse ikke er mindre enn avstanden som bilen dekker i tiden mellom avlesningene. Ved en hastighet på 100 km/t når denne verdien nesten 28 meter, noe som sammen med en mulig målefeil gjør informasjonen som gis til brukeren mildt sagt upålitelig.

    Vi kunne lage en enorm GPS-markør og blokkere en fjerdedel av skjermen med den, og forsiktig maskere manglene ved den beskrevne posisjoneringsmetoden, men å gå for direkte forfalskning ville være respektløst overfor brukerne og oss selv. Nøyaktigheten og aktualiteten til de viste dataene er ikke mindre viktig kriterium når du utvikler en navigator enn den ytre skjønnheten og jevnheten i bevegelsen.

    3. Tatt i betraktning det nye kravet til posisjoneringsnøyaktighet, er det verdt å merke seg at vi nå er pålagt, kort tid før ankomsten av en ny GPS-avlesning, å plassere markøren på et punkt så nær denne nye avlesningen som mulig. Det vil si i hovedsak å se inn i fremtiden, selv om det bare er for en kort stund. Selv om det for tiden ser veldig dårlig ut for menneskeheten med oppfinnelsen av tidsmaskinen, er det fortsatt frelse for oss. Bevegelsen til bilen er inert, så hastigheten og retningen på dens bevegelse kan ikke endres umiddelbart, og i så fall kan vi prøve å forutsi med en viss nøyaktighet hvor brukeren vil være i intervallet mellom siste posisjonsreferanse og fremtiden. Hvis vi klarer å sikre at prognosefeilen i de fleste tilfeller vil være mindre enn feilen for den andre metoden, vil vi gjøre livet til våre navigatorbrukere mye enklere.

    Denne typen prognoser i de eksakte vitenskapene kalles ekstrapolering. Dette er veien vi vil gå i et forsøk på å utvikle en tredje metode for ruteføring som tilfredsstiller alle kriteriene oppført ovenfor. Deretter må vi ty til et mer formelt presentasjonsspråk, siden vi skal snakke om matematiske modeller.

    Ruteføring med posisjonsekstrapolering

    Det ble tidligere nevnt at takket være tiltrekningen av brukerens geoposisjon til navigasjonsruten, kan vi flytte fra todimensjonale geografiske koordinater til en endimensjonal koordinat - en forskyvning i forhold til begynnelsen av ruten (for korthets skyld vil vi videre bruke begrepet "offset" uten avklaring).

    La oss huske dataene som kommer til oss og introdusere notasjonen for dem:

    Reelle forskyvningsavlesninger oppnådd ved å trekke GPS-posisjonen til rutelinjen;
    - ankomsttid for de tilsvarende forskyvningsprøvene.
    Det er her listen over inndata slutter. Du må presse ut så mye nyttig informasjon som mulig fra dem.

    Til syvende og sist må vi bygge en forsom vil være nær den virkelige dynamikken til bilen og samtidig sikre jevn bevegelse av GPS-markøren langs hele ruten (lengden vil ikke påvirke noe, siden fullføringen av ruten behandles separat, så vi vil betinget vurdere ruten som uendelig). For å sikre god visuell glatthet vil glatthetstilstanden være tilstrekkelig, det vil si at verken posisjonen eller hastigheten til markøren skal endres brått. Med andre ord må funksjonen være kontinuerlig sammen med sin førstederiverte (heretter - i tid) gjennom hele definisjonsdomenet.

    La oss merke seg at hver reell forskyvningsprøve har betydelig ny informasjon om bevegelsen. For eksempel, hvis en bil kjørte jevnt i lang tid, og deretter begynte å akselerere, vil navigatøren kunne "føle" akselerasjonen bare med ankomsten av neste nedtelling. Siden vi ikke kan se inn i fremtiden over lengre tid, vil alle innkommende nye GPS-avlesninger i det generelle tilfellet endre oppførselen til den ønskede funksjonen, som ikke tillater oss å spesifisere den i ett analytisk uttrykk. La oss heller prøve å definere funksjonen stykkevis. For å gjøre dette, la oss løse et enklere problem først.

    Direkte stykkevis ekstrapolering

    La oss konstruere en forslik at verdiene etter den th prøven forutsier brukerens faktiske plassering i tilstrekkelig tid før ankomsten av den th prøven. Alle nyttige data vi har er en sekvens av tellinger opp til – inklusive, sammen med tidspunktet for mottak av hver av dem.

    Når vi husker på endelige forskjeller, legger vi merke til at vi har muligheten til å estimere hastigheten til bilen på det tidspunktet ved å dele lengden på segmentet mellom siste og nest siste forskyvning med det tilsvarende tidsintervallet:


    , hvor er hastighetsestimatet fra prøvene, og er den deriverte av ekstrapolasjonsfunksjonen som vi prøver å konstruere.

    Tilsvarende for høyere ordensderivater - akselerasjon, rykk osv.:


    Som man kan se fra disse formlene, for å få et estimat av stadig høyere derivater av forskyvningen, er det nødvendig å ta hensyn til flere og flere prøver som går foran den nåværende: for å bestemme hastigheten, er det nødvendig med to prøver for akselerasjon - tre, for rykk - fire osv. På den ene siden, jo mer dynamiske egenskaper ved bevegelse vi tar hensyn til i prognosen vår, jo større modelleringsevne vil vi oppnå; på den annen side mister nyttig informasjon i stadig mer "eldre" lesninger dramatisk relevans. For eksempel vil det faktum at vi kjørte i en hastighet på 30 km/t for et minutt siden ikke hjelpe oss på noen måte i det nåværende tidspunktet: siden da kunne vi ha akselerert, bremset ned eller til og med stoppet flere ganger. Av denne grunn blir estimater av stadig høyere derivater av forskyvningen lenger og lenger fra virkeligheten; i tillegg øker også bidraget til feilen ved beregning av en viss derivert til den generelle analytiske modellen for forskyvning med økende rekkefølge av denne deriverte. I så fall, med utgangspunkt i en viss rekkefølge, vil de dynamiske egenskapene estimert ved bruk av endelige forskjeller, i stedet for forfining, bare ødelegge modellen vår.

    Basert på tester i den virkelige verden, ser det ut til at rykk-estimering, spesielt i tilfeller med "gjennomsnittlig" GPS-signalkvalitet, allerede er dårlig nok til at det gjør mer skade enn nytte. På den annen side, heldigvis, er de vanligste bildynamikkscenariene hvile, jevn og jevn bevegelse, beskrevet av polynomlikninger på henholdsvis 0., 1. og 2. grad i tid.

    Det viser seg at den kvadratiske modellen med jevnt variabel bevegelse vil være ganske tilstrekkelig for oss til å beskrive de fleste veisituasjoner, og for den har vi bare nok mer eller mindre høykvalitetsestimater av de dynamiske egenskapene - hastighet og akselerasjon. Når vi husker skolefysikkkurset, kan vi allerede grovt tegne opp et analytisk uttrykk for ønsket ekstrapolasjonsfunksjon:


    Det er bare ett skritt igjen å ta: definisjonsdomenet begynner fra tidspunktet, så det er mer praktisk å telle tid i beregninger fra samme øyeblikk.

    Som et resultat vil funksjonen ha formen:


    Et bemerkelsesverdig trekk ved denne funksjonen er dens jevnhet over hele definisjonsdomenet, som, som nevnt tidligere, er inkludert i formuleringen av problemet vårt.

    La oss nå ta flere reelle forskyvningsprøver fra enheten og prøve å ekstrapolere dem ved hvert intervall (selv om det ble bestemt før, i det øyeblikket prøven kommer vil vi umiddelbart gå videre til neste funksjon, fordi den har nyere data):

    La oss ta forbehold om at for klarhetens skyld ble dataene tatt med et GPS-signal av relativt lav kvalitet, men situasjonen i figuren er ganske reell og kan oppstå for enhver bruker.

    Glattheten til hvert ekstrapolasjonspolynom er perfekt synlig på det tilsvarende tidsintervallet, men problemet er at i kryssene mellom intervallene lider den generelle grå kurven av diskontinuiteter, noen ganger veldig merkbare.

    La oss kalle størrelsen på gapet i det th tidspunktet for ekstrapolasjonsfeilen. Det er faktisk denne verdien som viser hvor unøyaktig hver av prognosene våre er ved slutten av tidsintervallet. Du kan beregne feilverdien ved å bruke følgende uttrykk:


    Akk, vi kan ikke redusere feilen til null ved å variere funksjonene i seg selv, fordi dette vil tilsvare hundre prosent nøyaktighet av fremtidsvisjonen. Dette betyr at for å løse vårt første problem med å konstruere en enkelt funksjon, må vi på en eller annen måte "lime" sammen de stykkevise ekstrapolasjonspolynomene, det vil si korrigere feilene som oppstår ved leddene.

    Tilnærming til feilretting

    I samsvar med notasjonen valgt ovenfor, kan vi uformelt si at når en ny referanse kommer, er vi på punkt , dvs. forskjøvet i forhold til den reelle posisjonen med mengden feil akkumulert av det forrige ekstrapolasjonspolynomet.

    På den ene siden, fra synspunktet om samsvar mellom dataene gitt til brukeren med virkeligheten, ville den beste måten å rette feilen på være å bryte funksjonen ved startpunktet til neste polynom, men vi kan ikke gjøre dette, fordi i dette tilfellet vil vi igjen "teleportere" markøren på kartet og desorientere sjåføren.

    Det er klart, hvis en øyeblikkelig endring i verdien er uakseptabel, vil feilretting ta litt tid som ikke er null. Det er også klart at det er tilrådelig å fullføre feilretting før neste telling kommer for å forhindre feilakkumulering.

    På grunn av den stokastiske karakteren til tidsintervallene mellom forskyvningsavlesninger, er det ikke mulig å pålitelig bestemme den nøyaktige korrigeringstiden. Derfor, som en første tilnærming, vil vi fikse feilrettingstiden i form av en konstant verdi, hvis spesifikke verdi vil bli valgt i fremtiden eksperimentelt.

    Når du snakker i uformelt språk igjen, for å rette en feil, må du jevnt "gå tilbake" fra et punkt til neste ekstrapoleringspolynom - en kurve.

    For å beskrive feilrettingsprosessen er det praktisk å introdusere individuelle korreksjonsfunksjoner på en slik måte at den tilsvarende korreksjonsfunksjonen på tidspunktet tar på seg verdien , og starter fra det øyeblikket den blir lik null:


    Hvis vi legger til en slik korreksjonsfunksjon med det tilsvarende interpolasjonspolynomet, vil vi på nøkkelpunkter gi offset feilkorrigering:
    La oss kalle den korrigerte forskyvningsfunksjonen summen av ekstrapolasjonspolynomet og den tilsvarende korreksjonsfunksjonen:
    Vær oppmerksom på at takket være egenskapene til korreksjonsfunksjonene beskrevet ovenfor, har vi fått en veldig viktig egenskap ved funksjonene - de er allerede "sydd med forskyvning", dvs. tolerer ikke pauser på punkter:
    Settet med korrigerte funksjoner kan late som om de er den ønskede forskyvningsmodellen, definert til enhver tid, om ikke for én omstendighet: til tross for fraværet av forskyvningsdiskontinuiteter på punkter, er derivatene av dette settet med funksjoner i det generelle tilfellet fortsatt diskontinuerlige.

    Spesifikt er vi interessert i diskontinuiteten til det første derivatet - hastighet, fordi de første kravene inneholder betingelsen om universell glatthet, dvs. betingelse for universell hastighetskontinuitet. Med dette i betraktning, er det nødvendig å utvide kravene til korreksjonsfunksjoner for også å "sy" derivatene av de korrigerte funksjonene:


    Denne ligningen er betingelsen for jevnheten til settet med korrigerte funksjoner. Ved å erstatte definisjonen av justerte funksjoner på begge sider av ligningen, får vi
    Vi nevnte tidligere at etter at korrigeringstiden er utløpt, tar korrigeringsfunksjonen null verdier. La oss legge til et krav til til korreksjonsfunksjonen - la dens deriverte også ta nullverdier etter at korreksjonstiden er utløpt:
    Så, under antagelsen om at korreksjonstiden alltid er mindre enn intervallet mellom samples, kan vi anta at den deriverte av den th korreksjonsfunksjonen allerede vil være null når neste sample ankommer. Så, tilbake til glatthetstilstanden, får vi:
    La oss uttrykke det herfra:

    Legg merke til at dette er et estimat av hastigheten laget ved bruk av endelige forskjeller, la oss erstatte det:


    Høyre side representerer hastighetsekstrapolasjonsfeilen - forskjellen mellom hastigheten oppnådd fra forrige ekstrapoleringspolynom og den "virkelige" hastighetsavlesningen. Nå kan vi sette sammen grensebetingelsene for korreksjonsfunksjonene:
    De kan beskrives med ord som dette: du må finne en korreksjonsfunksjon slik at:
    • ved begynnelsen av korreksjonsintervallet falt verdien sammen medn;
    • ved begynnelsen av korreksjonsintervallet falt verdien av dens deriverte sammen med hastighetsekstrapolasjonsfeilen;
    • ved slutten av korreksjonsintervallet og videre var verdien av selve funksjonen og dens deriverte null.

    Velge en feilrettingsfunksjon

    Det er verdt å merke seg at det er svært vanskelig å få et enkelt analytisk uttrykk for korreksjonsfunksjonene som nøyaktig tilfredsstiller de fire ovennevnte betingelsene. Problemet ligger i den delen av definisjonsdomenet som kommer etter at korrigeringstiden er utløpt - du må oppnå nullverdier av funksjonen og dens deriverte på hele resten av den numeriske aksen. For å forenkle problemet vil vi redusere definisjonsdomenet for det ønskede analytiske uttrykket for korreksjonsfunksjonen til korreksjonsintervallet , og etter dens øvre grense vil vi vurdere verdien av funksjonen og dens deriverte som trivielt null (heldigvis, kl. programkodenivået har vi en slik mulighet på grunn av tilstedeværelsen av filialer).

    Formelt sett, med tanke på denne teknikken, er den stykkevise korreksjonsfunksjonen et uttrykk for korreksjonsintervallet og konstanten 0 under, men hvis grensebetingelsene er oppfylt på punktet, vil det ikke være noen diskontinuitet i verken selve korreksjonsfunksjonen eller dens første avledet. Siden diskontinuiteter av høyere derivater ikke er av interesse for oss (de vil ikke ødelegge jevnheten til den ønskede funksjonen), vil vi i fremtiden ikke nevne null "halen" til korreksjonsfunksjonen, og vi vil omformulere grensebetingelsene i en mer praktisk form:


    La oss betegne hastighetsekstrapolasjonsfeilen med:
    Nå må vi definere et analytisk uttrykk for . På grunn av de ergonomiske kravene til programmet er det i tillegg til grensebetingelsene nødvendig at korrigeringsfunksjonen har så få ytterpunkter og knekk som mulig i korrigeringsintervallet - slik at GPS-markøren ikke "trekker".

    Den enkleste funksjonen som oppfyller disse kravene er igjen et polynom - et polynom av minst mulig grad i tid (teoretisk sett, blant elementære funksjoner, har for eksempel sinus også lignende egenskaper, men å beregne verdien er dyrere når det gjelder prosessortid ).

    Siden grensebetingelsene er et system av fire ikke-trivielle ligninger, er minimumsgraden av polynomet som gir tilstrekkelig parameterisering av korreksjonsfunksjonen den tredje. Tatt i betraktning at når du konstruerer et analytisk uttrykk for det er mer praktisk å telle tiden fra øyeblikket av tellingen (nøyaktig det samme som i definisjonen), vil det nødvendige polynomet ha følgende form:


    Ved å erstatte dette uttrykket i systemet med grensebetingelser og løse det med hensyn til konstantene og , får vi følgende verdier:
    Som et resultat, hvis vi definerer korreksjonsfunksjonene på den beskrevne måten, smelter de korrigerte funksjonene sammen til en enkelt ekstrapolasjonsfunksjon, jevn til enhver tid. Vi vil ikke gi det fulle uttrykket for på grunn av dets besværlighet.

    Merk: den siste unøyaktigheten forble i antagelsen ved valg av korrigeringstidspunkt - resonnementet vårt var basert på betingelsen om at det alltid vil være mindre enn intervallet mellom avlesningene:


    En fin egenskap ved den konstruerte modellen er at vi bare trenger å velge på en slik måte at den ikke overskrider gjennomsnittstiden mellom prøvene: hvis individuelle intervaller er mindre enn , så er en del av feilen som vi ikke rakk å rette kl. for kort intervall vil bli korrigert med ett av følgende. For å gjøre dette vil det være nok å beregne ekstrapolasjonsfeilen ikke fra den vanlige ekstrapolasjonsfunksjonen, men fra den justerte:
    Figuren nedenfor viser et eksempel på en graf av den endelige ekstrapolasjonsfunksjonen, bygget ved hjelp av ekte data:

    Det formelle problemet er løst, den resulterende kurven tilfredsstiller alle de spesifiserte betingelsene, og den ser ganske fin ut. Man kunne slappe av på dette, men egenskapene til den virkelige verden byr på visse vanskeligheter for det konstruerte idealiserte systemet.

    La oss se på noen av dem mer detaljert, og ta forbehold om at alle beslutningene som tas nedenfor implementeres direkte i programkoden utenfor den matematiske modellen.

    Tilpasning av den matematiske modellen til reelle forhold

    Forbud mot markørbevegelse i motsatt retning

    I den siste grafen kan du se at funksjonen i noen tilfeller begynner å avta, selv når brukeren ifølge reelle målinger kjører utelukkende fremover langs ruten. Dette skjer når prognosen vår kraftig overvurderer bevegelseshastigheten. På den annen side, i virkeligheten, beveger en bil seg i motsatt retning av bare to grunner: sjåføren satte faktisk bilen i revers og gikk tilbake (et svært sjeldent tilfelle), eller gjorde en U-sving.

    Ved u-sving endres veisituasjonen betydelig, noe som krever omlegging av navigasjonsruten; dette er et eget emne og passer ikke inn i denne artikkelens omfang.

    Hvis vi bruker resultatene av ekstrapolering av posisjonen direkte, vil en forsvinnende minoritet av alle bevegelsene til markøren mot begynnelsen av ruten tilsvare den virkelige bevegelsen til bilen i samme retning. I lys av dette ble det besluttet å fullstendig forby markøren å bevege seg bakover uten å endre ruten, for ikke å villede brukerne.

    En så streng betingelse er vanskelig å beskrive i matematisk språk, men den er relativt enkel å implementere i programkode. Til å begynne med, la oss ta hensyn til modelltidens diskrete natur - på grunn av særegenhetene ved funksjonen til datamaskiner, vil vi uansett motta ekstrapoleringsresultater på visse utvalgte tidspunkter.

    I så fall vil det ikke være vanskelig å sikre at den ekstrapolerte forskyvningen ikke reduseres: det er nok å sammenligne den nye oppnådde verdien med den forrige, og hvis den nåværende viser seg å være mindre, erstatt den med den forrige en. Til tross for den tilsynelatende råheten til denne teknikken, vil vi ikke forstyrre jevnheten til ekstrapolasjonsfunksjonen, fordi for å begynne å bevege deg bakover langs en jevn funksjon, må du først stoppe helt.
    I fremtiden vil driftsmodusen når vi erstatter matematisk korrekte verdier med eldre for å forhindre bevegelse tilbake, kalles tvungen stoppmodus.

    Ekstrapolasjonsfeil er for store og intervallene mellom prøvene er for lange

    Til tross for at vi har konstruert en kvalitativ funksjon på en måte, kan noen ganger ekstrapolasjonsfeil nå uakseptable verdier. I disse tilfellene bør programmet slutte å prøve å rette feil ved å bruke standardmidler. En annen situasjon der ekstrapolerte data mister sin relevans oppstår hvis en ny forskyvningsavlesning av en eller annen grunn ikke kommer for lenge – modelleringsevnen synker dramatisk siden siste avlesning ble mottatt. For å unngå å krysse grensen mellom forsøk på prognoser og skamløse løgner, koster det vanligvis ikke mer enn tre sekunder å stole på en modell.

    For enkelhets skyld vil vi kalle den første negative situasjonen en ukorrigerbar forskyvningsfeil, og den andre - en ukorrigerbar tidsfeil.

    Vi kan arbeide med hver av disse typene feil på to måter:

    • Gå inn i den ovennevnte tvungen stoppmodus. Fordelen med denne tilnærmingen er at den bevarer den jevne bevegelsen til geoposisjonsmarkøren på terrengkartet. Men jo lenger vi er i tvungen stoppmodus, jo dårligere informerer vi brukeren om hans virkelige plassering;
    • Teleporter GPS-markøren umiddelbart til siste referanseposisjon. Her ofrer vi tvert imot ergonomi av hensyn til påliteligheten til informasjonen som gis til brukeren.
    For vår applikasjon ble den første metoden valgt, siden det legges særlig vekt på glattheten i bevegelsen.

    Forlenget tvungen stoppmodus

    Enhver inntreden i tvungen stoppmodus er assosiert med produksjon av mindre nøyaktige posisjonsdata for å forhindre reversering av GPS-markøren. For ikke å feilinformere brukeren i spesielt ugunstige tilfeller, er modellen vår i tillegg utstyrt med muligheten til å avbryte tvungen stoppmodus ved å "teleportere" markøren til den siste reelle posisjonen etter en spesifisert tidsperiode, uavhengig av årsaken til å gå inn modusen (matematisk resultat av ekstrapolering eller ukorrigerbare offset/tidsfeil) . I dette øyeblikket må til og med jevnheten av bevegelser ofres for "restene" av nøyaktighet.

    konklusjoner

    Som et resultat av arbeidet som ble gjort, var vi i stand til å forbedre ruteveiledningen for å gi en god balanse mellom nøyaktigheten til de oppgitte dataene og den visuelle ergonomien til skjermen. Brukeren vil føle seg ganske komfortabel, spesielt når høykvalitetsdata mottas fra GPS-sensoren på grunn av et godt signal.

    Ekstrapolasjonssystemet som er beskrevet kan brukes i andre applikasjoner som bruker geoposisjonering. Der konseptet med en rute, og derfor en forskyvning i forhold til dens begynnelse, ikke eksisterer, kan den matematiske modellen fra en endimensjonal skalar generaliseres til en flerdimensjonal vektor. Implementering av selve modellen i kode er ikke et problem i noen av de populære programmeringsspråkene - det krever bare enkle aritmetiske operasjoner.

    Når det gjelder videre utviklingsveier, er det verdt å være oppmerksom på målefeilen nevnt i begynnelsen av artikkelen i de "rå" posisjonsdataene fra sensoren. Hvis vi allerede prøver å rette opp feilene i prognosen vår, så er kampen mot målefeil et eget lag med arbeid for fremtiden, vanskelig, men ikke mindre interessant for dette. Fordelene med potensiell suksess på dette feltet for nøyaktigheten av den viste informasjonen kan ikke overvurderes.

    Tags: Legg til tagger


    2 GIS er både en oppslagsbok og en som fungerer uten tilgang til Internett. Bare last ned kartet over ønsket by på forhånd, og en enorm database med nyttig informasjon vil vises på telefonen din! Du kan laste ned 2 GIS for Android gratis i apk-format ved å bruke direktelenken nedenfor.

    2 GIS-mobilapplikasjonen er på ingen måte dårligere enn den stasjonære datamaskinversjonen og vet absolutt alt om byens infrastruktur. Han vil vise deg hvordan du kommer deg til nærmeste bensinstasjon, minibank eller kafé uten trafikkork, hjelper deg med å finne en notarius, frisør, apotek, moske, bilservicesenter, kjøpesenter, døgnåpen dagligvarebutikk. For turister inneholder applikasjonen en byguide som kjenner de mest interessante stedene og de mest populære etablissementene.

    Funksjoner av 2 GIS-navigator for Android:
    - 9 land og 330 russiske byer: Moskva, Jekaterinburg, Tyumen, Novosibirsk, Kazan, Perm, Lipetsk, Izhevsk, Saratov, Krasnodar, etc.;
    - Stabilt arbeid uten internett og uten å gå på akkord med funksjonalitet ved roaming, på et fly, i metroen - det er en vei ut overalt;
    - Lag turveier ved hjelp av offentlig transport (buss, trolleybuss, t-bane, trikk) med eller uten overføringer;
    - Når du kjører bil, tas den virkelige tilstanden til veien i betraktning, som viser trafikkork, fotobokser, fartshumper og gjennomsnittlig reisetid;
    - Finn ut nødvendig informasjon om en bestemt bygning, husnummer, telefonnummer for kontakt, på hvilken side inngangen er plassert;
    - Praktiske filtre, søk etter nøkkelord og kategorier.

    I motsetning til konvensjonelle navigatorer får du med 2 GIS på Android et oppdatert kart over Russland og en enorm katalog med kontakter, adresser og fotografier av mange bygninger. Utviklerne oppdaterer programmet månedlig, legger til den siste relevante informasjonen og legger til nye funksjoner. For eksempel kan du nylig sammenligne priser for taxitjenester og bestille dem umiddelbart.

    Taleveiledning langs ruten har dukket opp i 2GIS. Nå kan applikasjonen brukes som en navigator: den vil lede deg til inngangen til organisasjonen, med tanke på trafikkork, gjerder og åpne broer. Navigatoren er allerede tilgjengelig på iOS og Windows Phone, og fra 22. august – i den nye versjonen av 2GIS for Android med et friskt design.

    Navigatormodusen hjelper deg med å komme til et sted langs den optimale ruten, med tanke på trafikksituasjonen. Enhetsskjermen viser den nøyaktige banen og avstanden til neste manøver, og talemeldinger lar sjåføren ikke bli distrahert fra veien. Hvis sjåføren bommer en sving, vil navigatøren umiddelbart endre ruten.

    «2GIS oppdaterer kart og veinett kontinuerlig. Vi kjenner mange indre passasjer, hvilke hus som er omgitt av gjerder, hvor innganger og innganger til organisasjoner er plassert. Vår navigatør leder deg nøyaktig til ønsket inngang."

    Sier Pavel Mochalkin, direktør for forsknings- og utviklingsavdelingen til 2GIS.

    I likhet med selve applikasjonen fungerer navigatoren uten Internett-tilkobling i alle byer i Russland og CIS der 2GIS er tilgjengelig. Den beregner omtrentlig reisetid og viser hvilken tid brukeren kommer til stedet. Tar hensyn til trafikkork, tidsplaner for broåpning og stengning av veier der dette er kjent. Hvis det er to måter å komme seg dit på, vil navigatøren tilby et valg.

    2GIS-navigatoren fungerer på iPhone med iOS 8.0 og nyere, Windows Phone 8.1 og høyere. For å bruke den må du oppdatere 2GIS på smarttelefonen eller laste den ned gratis fra AppStore eller Windows Store.

    "Siden det månedlige publikummet til 2GIS på Android lenge har vært mer enn 8 millioner brukere, vil vi slippe den nye versjonen for Android gradvis, over flere uker fra og med 22. august. Dette er lengre enn på andre plattformer, fordi i tillegg til utseendet til navigatoren i Android-applikasjonen, endres designet fullstendig. Den første muligheten til å laste ned den oppdaterte 2GIS vil bli gitt til 5 % av tilfeldige Android-brukere som allerede har den forrige versjonen. Så ytterligere 5 %, så en til. Hvis du vil bruke den nye 2GIS akkurat nå, kan du laste ned betaversjonen på Google Play ved å søke etter "2GIS beta,"

    Pavel Mochalkin rapporterer.

    Beskrivelse av driftsprinsippet til 2GIS-navigatoren

    2GIS-navigatoren bygger en vei til inngangen til ønsket organisasjon og tilbyr opptil to optimale rutealternativer (1 bilde - eksempel på Android, 2 bilder - eksempel på iOS).

    2GIS-navigatoren tar hensyn til trafikkork og bygger en rute rundt dem (1 bilde - eksempel på Android, 2 bilder - eksempel på iOS).


    2GIS-navigatoren guider deg langs veien, forteller deg hvor mange meter senere du trenger for å foreta neste manøver, og beregner ankomsttid til destinasjonen. Hvis brukeren avviker fra den tiltenkte kursen, vil navigatøren umiddelbart gjenoppbygge ruten (1 bilde - eksempel på Android, 2 bilder - eksempel på iOS).


    2GIS-navigatoren kjenner veiene innenfor blokken og bygger en rute rundt gjerder og sperringer direkte til ønsket inngang. Fungerer offline (1 bilde - eksempel på Android, 2 bilder - eksempel på iOS).


    På alle smarttelefoner basert på Android 4.1 og høyere vil 2GIS i nytt design og med navigator være tilgjengelig i begynnelsen av september.

    Mange husker de gamle papirkartene over bosetninger og store byer, hvor bare de viktigste, etter kompilatorenes oppfatning, ble angitt - sykehus, teatre, hoteller. Men i løpet av de siste par tiårene har vår verden blitt så mye mer kompleks at det nå ikke bare er nyttig, men noen ganger nødvendig å vite så nøyaktig som mulig adressene til objekter, plasseringen til nærmeste temainstitusjon (postkontor) , kafé, sykehus) og til og med finne ut nøyaktig hvor den ønskede inngangen er plassert inn i bygningen.
    Det er disse ansvarsoppgavene som har blitt tatt på seg av dagens populære applikasjon for mobile enheter som kjører Android OS - 2GIS. Dette er en oppslagsbok som inneholder et stort antall svært forskjellige og veldig nyttige funksjoner for eieren. Dessuten er det spesielt hyggelig at du kan laste ned 2GIS gratis på russisk, og applikasjonen er ganske i stand til å fungere i offline-modus.

    Hvis du velger en bygning og får tilgang til 2GIS-applikasjonen, vil den fortelle deg hvilke selskaper, organisasjoner og institusjoner som er lokalisert i denne bygningen, hvor den nærmeste kafeen ligger i nærheten av denne bygningen, samt i hvilken modus det hele fungerer, hvilket telefonnummer du kan ringe til disse stedene og til og med hvilke anmeldelser besøkende la om dem, hvor høy bedriftens vurdering er og hvordan det hele ser ut på brukerbilder. Derfor vil det være helt umulig å gå seg vill selv i et ukjent område i en ukjent by - hvis du selvfølgelig har lastet ned 2GIS-applikasjonen for Android OS til mobiltelefonen din på forhånd.

    Hvert objekt av interesse for brukeren, som han allerede har funnet én gang, trenger ikke å søkes en gang til - hvis slike objekter er lagret i favoritter. 2GIS-søkesystemet inneholder filtre som lar deg velge de mest populære kategoriene blant moderne brukere - restauranter og kafeer, sykehus og apotek, bensinstasjoner og kjøpesentre.


    Og store kjøpesentre fikk spesiell oppmerksomhet - det ble også laget kart for dem som viser hvor i bygningen det er en kafeteria, hvor det er butikker og hvor toalettet er, noe som noen ganger er aktuelt. Store byer vil gi eieren av 2GIS: katalog- og navigatorapplikasjonen et annet pluss - utvalg av interessante steder og potensielt nyttige selskaper, og alt dette i ett program, som kan lastes ned på nettstedet vårt. Fra et hvilket som helst valgt punkt til et hvilket som helst annet, vil programmet enkelt bygge en praktisk rute.

    Hvis noen tror at en en gang laget oppslagsbok ikke forblir relevant i lang tid, ville han ha rett. Men ikke i forhold til 2GIS for Android OS – utviklerne tar tross alt også dette punktet i betraktning. Og for at applikasjonen deres alltid skal forbli varm, varm og gi brukeren bare relevante data, blir databasen kontinuerlig oppdatert, og de tilgjengelige rutene utvides på grunn av de mest intrikate banene som bare kan komme til forbrukerens sinn.

    Kartene i seg selv unnslipper ikke oppmerksomheten til utviklerne: de ble opprinnelig laget som de mest detaljerte diagrammene over bosetninger og byer, men teamet som er ansvarlig for implementeringen deres fortsetter å detaljere det og legger stadig til nye nyttige detaljer. I dag har ting kommet til det punktet at etter å ha funnet et interessant objekt på et slikt kart, vil 2GIS-applikasjonen tilby den beste ruten til den, og vil rapportere trafikkork og ta hensyn til dem når du planlegger ruten.

    Og hvis du ikke har bil, er ikke dette en hindring for 2GIS-applikasjonen, og det vil ta hensyn til det faktum at du bruker offentlig transport. Du kan ta hensyn til potensiell mangel på mobiltrafikk, roaming og utilgjengelighet av Wi-Fi ved først å laste ned kart over byer som er relevante for brukeren, og bruke dem gratis med samme effektivitet.

    Beleilig dekker systemet med mer enn tre hundre kart ikke bare de forventede ukrainske og russiske byene, men også bosetningene i Kasakhstan og Kirgisistan, byene i Tsjekkia, Kypros og UAE, som er veldig nyttige på ferie, og også , av helt ukjente årsaker, kart over byene i Chile.

    Og alle disse nyttige funksjonene er inneholdt i et enkelt og praktisk ergonomisk 2GIS-grensesnitt for Android, som er fullstendig laget på russisk - så det er ingen problemer med å bruke det.