2 GIS uygulamasını telefonunuza nasıl indirirsiniz? "2GIS" - tek bir akıllı telefonda elektronik harita ve dizin

2GIS uygulamasının artık bir navigatörü var. Bir parkur boyunca "sürüş yapmayı", sesli manevraları, rotayı otomatik olarak yeniden düzenlemeyi, seyahat süresini hesaplamayı, kullanıcıyı bir binanın veya kuruluşun girişine yönlendirmeyi, çitleri ve engelleri hesaba katmayı - ve tüm bunları dürüst bir çevrimdışı ortamda öğrendik . Uzun süredir trafik sıkışıklığını (internet gerektirmediği sürece), açık köprüleri ve kapalı sokakları hesaba katıyoruz. Şimdilik navigatörümüz gerekli minimum değeri içermektedir. Biraz sonra ona çok yüksek hızlar, hız tümsekleri ve trafik kameraları hakkında uyarıda bulunmayı öğreteceğiz ve kurulumu yapacağız. gece moduÜcretli ve toprak yollardaki güzergahları isteğe bağlı hale getireceğiz. Kullanmak için akıllı telefonunuzda 2GIS'i güncellemeniz veya AppStore veya Windows Mağazasından indirmeniz gerekir. İçin Android güncellemesi 22 Ağustos'tan itibaren kademeli olarak yayınlanacak (Eylül ayına kadar tüm izleyicilere sunulacak).

Ve bugün size 2GIS navigatörünün arabanın konumunu nasıl tahmin ettiğini ve oku rota boyunca nasıl sorunsuz bir şekilde hareket ettirdiğini anlatacağız. Sonuçta, herhangi bir modern navigatörün arayüzünün ergonomisini, yerde yönlendirme kolaylığını ve manevraların zamanındalığını belirleyen, kullanıcıyı rota boyunca yönlendirmenin kalitesidir.

Çoğu zaman, bir arabanın sürücüsü yolu izlemek zorunda kalır, bu nedenle navigasyon programı olan bir cihazın ekranına kısa bir bakış bile, kendi konumu hakkında en doğru ve zamanında bilgiyi elde etmek için yeterli olmalıdır. rota ve çevredeki nesneler. Bu görünüşte basit işlevsellik birçok çözüm gerektirir teknik sorunlar uygulanması için. Bunlardan bazılarını ele alacağız.

GPS işaretçisi ve rota

Kullanıcının haritadaki konumunu belirtmek için, birçok gezgin (ve bizimki bir istisna değildi), hareket yönünü sezgisel olarak gösteren ok ucu veya sadece bir üçgen şeklinde özel bir GPS işaretçisi kullanır. Ek olarak, işaretleyicinin harita üzerinde açıkça görülebilmesi gerekir, bu nedenle rengi genellikle arka plandan çok farklıdır, kenarlar ek olarak özetlenmiştir vb.

En basit durumda, GPS sensöründen koordinatları okuyarak ve haritada ilgili yere bir işaret koyarak cihazın yerdeki konumunu görüntüleyebilirsiniz. Zaten burada ilk sorunla karşı karşıyayız - iyi bir sinyal koşullarında bile kolayca 20-30 metreye ulaşabilen ölçüm hatası.

Sık sorulan "Neredeyim?" sorusunu yanıtlamak için. Bu görüntüleme yöntemi, özellikle işaretleyicinin etrafına hata tahminine eşit bir yarıçapa sahip bir doğruluk dairesi çizerseniz oldukça yeterli olacaktır. Bununla birlikte, navigasyon için daha iyi bir şey bulmanız gerekir, çünkü şehirdeki bir caddede hareket eden bir sürücünün, komşu bir evin içinde veya daha da kötüsü bazı blok içi geçitlerde bulunan GPS işaretçisinden memnun olması pek olası değildir.

Program tarafından hedef noktaya oluşturulan ve navigasyon komut dosyasında her zaman mevcut olan bir rota, sorunun çözülmesine yardımcı olur. Bazı hilelerin yardımıyla haritadaki bir noktayı rotaya "çekebilir" ve GPS sensörünün ölçüm hatalarının bir kısmını düzeltebiliriz. İlk yaklaşıma göre çekim, bir noktanın rota çizgisi üzerindeki izdüşümü olarak düşünülebilir. Rotadan sapmayı tespit etme yöntemlerinin yanı sıra nüansların dikkate alınması ne yazık ki bu makalenin kapsamı dışındadır.

Belirtilen çekim tekniğini benimseyerek, iki boyutlu coğrafi koordinatlardan (enlem-boylam veya başka herhangi bir) soyutlayabilir ve tek boyutlu bir koordinata geçebiliriz - örneğin rotanın başlangıcına göre ölçülen bir yer değiştirme, metre cinsinden. Bu geçiş, hem teorik modelleri hem de kullanıcı cihazlarında gerçekleştirilen hesaplamaları basitleştirir.

Zaman içinde coğrafi konumun görüntülenmesi

GPS sensöründen alınan verilerin ayrık doğası, kullanıcı rota rehberliğini uygularken başka bir sorundur. İdeal olarak koordinatlar saniyede bir güncellenir. Coğrafi konumu zaman içinde görüntülemek için çeşitli seçenekleri göz önünde bulunduralım ve görevlerimiz için en uygun olanı seçelim.

1. En basit yol, sensörden gelen her yeni değeri aldıktan sonra hemen rotaya geçmek ve ilgili konumu haritada görüntülemektir. Avantajları arasında, olağanüstü uygulama kolaylığı, bir anlamda yüksek doğruluk (sonuçta, burada uydu verilerini ciddi bir değişiklik yapmadan sadece görüntülüyoruz) ve minimum hesaplama karmaşıklığına dikkat etmek önemlidir. Ana dezavantaj Mesele şu ki, bu durumda işaretleyici, alışılagelmiş anlamda harita üzerinde hareket etmiyor, ancak noktadan noktaya "ışınlanıyor". Ana navigasyon senaryosunda kamera (sanal gözlemci sahadan bir terimdir) bilgisayar grafikleri) bir GPS işaretçisine bağlıdır, bu nedenle bu tür ışınlanmalar, haritanın rota boyunca keskin bir şekilde "kaymasına" ve bunun sonucunda, özellikle yüksek hızlarda, araç zaman içinde önemli bir mesafe kat ettiğinde sürücünün yönelim bozukluğuna yol açar. coğrafi konum okumaları arasında. Amacımız kullanıcıya yardımcı olmak, kafasını karıştırmak değil, bu nedenle bu kusur zaten bu seçeneği değerlendirme dışı bırakmak için yeterli.

Yönelim bozukluğunu önlemenin tek yolu, GPS işaretleyicisini "ışınlanma" olmadan sorunsuz bir şekilde hareket ettirmektir; bu, onu coğrafi konum okumalarının gelmesinden çok daha sık hareket ettirmeniz gerektiği anlamına gelir. Böyle bir hareketi sağlamak için, sensörden gelen gerçek okumalar arasındaki ara noktaları bir şekilde hesaplamak ve bunları bir sonraki okuma alınana kadar kullanmak gerekir. Bu ara noktaların hesaplanmasına yönelik özel yaklaşım, sonuçta navigatör programının genel ergonomisini büyük ölçüde etkileyeceğinden, özel dikkat göstermeye değer.

2. Kullanıcının konumunu görüntülemenin ikinci yolu, ara noktaların oluşturulmasına yönelik en bariz yaklaşımla ilişkilidir - son gerçek GPS okumaları arasında enterpolasyon. Önemli olan, işaretleyiciyi belirli bir süre boyunca sondan bir önceki sayımdan son sayıma taşımak, bilinen yöntemlerden birine göre gerekli sıklıkta ara noktaları hesaplamaktır. matematiksel fonksiyonlar(en basit seçenek doğrusal enterpolasyondur). Navigatörü bu şekilde kullanmak çok daha kullanışlıdır ancak aynı zamanda dezavantajları da vardır.

En zararsız olanlardan biri enterpolasyon süresinin önceden ayarlanması gerekliliğidir. Bunu bir saniyeye ayarlamak yalnızca yukarıda belirtilen ideal durumda, GPS okumaları arasında geçecek sürenin bu olduğu durumlarda işe yarayacaktır. Daha az zaman geçerse fark etmez; mevcut konumdan yeni bir hedefe doğru ilerlemeye başlayabilirsiniz. Ancak daha fazlası varsa, kullanıcının arabası şu anda hareket ediyor olsa da, işaretleyicinin hareketsiz durması ve sensörden yeni koordinatları beklemesi gerekecektir.

Daha ciddi bir sorun var. Yeni bir örnek geldiği anda işaretleyici en iyi ihtimalle önceki gerçek noktadadır. Kullanıcının bakış açısından, büyüklüğü, okumalar arasındaki süre boyunca arabanın kat ettiği mesafeden daha az olmayan başka bir konumlandırma hatası ortaya çıkarıyoruz. 100 km/s'lik bir hızda bu değer neredeyse 28 metreye ulaşıyor ve bu da olası bir ölçüm hatasıyla birleştiğinde, kullanıcıya sağlanan bilgileri en hafif tabirle güvenilmez hale getiriyor.

Devasa bir GPS işaretçisi yapabilir ve bununla ekranın dörtte birini kapatabilir, açıklanan konumlandırma yönteminin eksikliklerini dikkatlice maskeleyebiliriz, ancak doğrudan sahteciliğe başvurmak kullanıcılara ve kendimize saygısızlık olur. Görüntülenen verilerin doğruluğu ve güncelliği, bir navigatör geliştirirken hareketin dış güzelliğinden ve düzgünlüğünden daha az önemli bir kriter değildir.

3. Konumlandırma doğruluğuna yönelik ortaya çıkan gereklilik göz önüne alındığında, yeni bir GPS okumasının gelmesinden kısa bir süre önce, işaretçiyi bu yeni okumaya mümkün olduğu kadar yakın bir noktaya yerleştirmemizin artık gerekli olduğunu belirtmekte fayda var. Yani aslında kısa bir süre için de olsa geleceğe bakmaktır. Her ne kadar zaman makinesinin icadıyla birlikte şu sıralar insanlık adına işler çok kötü görünse de bizim için hâlâ kurtuluş var. Arabanın hareketi hareketsizdir, dolayısıyla hareketinin hızı ve yönü anında değişemez ve eğer öyleyse, kullanıcının son konum referansı ile gelecek arasındaki aralıkta nerede olacağını bir miktar doğrulukla tahmin etmeye çalışabiliriz. Çoğu durumda tahmin hatasının ikinci yöntemin hatasından daha az olmasını sağlamayı başarırsak, o zaman navigatör kullanıcılarımızın hayatını çok daha kolay hale getireceğiz.

Kesin bilimlerde bu tür tahminlere ekstrapolasyon denir. Bu, yukarıda listelenen tüm kriterleri karşılayan üçüncü bir rota yönlendirme yöntemi geliştirmek amacıyla izleyeceğimiz yoldur. Daha sonra matematiksel modellerden bahsedeceğimiz için daha resmi bir sunum diline başvurmamız gerekecek.

Konum ekstrapolasyonuyla rota yönlendirmesi

Kullanıcının coğrafi konumunun navigasyon rotasına çekilmesi sayesinde, iki boyutlu coğrafi koordinatlardan tek boyutlu bir koordinata (rota başlangıcına göre bir sapma) geçebileceğimizden daha önce bahsedilmişti (kısacası, daha fazla bilgi vereceğiz) açıklama yapmadan “denkleştirme” terimini kullanın).

Bize gelen verileri hatırlayalım ve notasyonunu tanıtalım:

GPS konumunun rota çizgisine çekilmesiyle elde edilen gerçek ofset okumaları;
- karşılık gelen yer değiştirme numunelerinin varış zamanı.
Giriş verileri listesinin bittiği yer burasıdır. Onlardan mümkün olduğunca çok yararlı bilgi çıkarmanız gerekecek.

Sonuçta, arabanın gerçek dinamiklerine yakın olacak ve aynı zamanda GPS işaretçisinin tüm rotamız boyunca düzgün hareket etmesini sağlayacak bir yer değiştirme ekstrapolasyonu işlevi oluşturmamız gerekiyor (uzunluğu hiçbir şeyi etkilemeyecektir, rota ayrı olarak işlenir, bu nedenle koşullu olarak rotayı sonsuz olarak kabul edeceğiz). İyi bir görsel düzgünlük sağlamak için düzgünlük koşulu yeterli olacaktır, yani işaretleyicinin ne konumu ne de hızı aniden değişmemelidir. Başka bir deyişle, fonksiyonun tüm tanım alanı boyunca birinci türeviyle (bundan sonra zaman olarak anılacaktır) birlikte sürekli olması gerekir.

Her gerçek yer değiştirme örneğinin, hareket hakkında önemli ölçüde yeni bilgiler taşıdığını belirtelim. Örneğin, bir araba uzun süre eşit şekilde gidiyorsa ve sonra hızlanmaya başladıysa, navigatör hızlanmayı ancak bir sonraki geri sayımın gelmesiyle "hissedebilecektir". Peki geleceğe nasıl istediğiniz kadar bakabilirsiniz? uzun vadeli yapamayız, gelen tüm yeni GPS okumaları genel durum istenen fonksiyonun davranışını değiştirerek tek bir analitik ifadede belirtilmesine izin vermez. Bunun yerine fonksiyonu parça parça tanımlamaya çalışalım. Bunu yapmak için önce daha basit bir problemi çözelim.

Doğrudan parçalı ekstrapolasyon

Öyle bir yer değiştirme ekstrapolasyon fonksiyonu oluşturalım ki, inci numuneden sonra değerleri, kullanıcının fiili konumunu, inci numune gelmeden yeterli bir süre önce tahmin etsin. Elimizdeki tüm yararlı veriler, her birinin alınma zamanı ile birlikte - dahil olan bir sayım dizisidir.

Sonlu farkları hatırlayarak, son ve sondan bir önceki yer değiştirme arasındaki segmentin uzunluğunu karşılık gelen zaman aralığına bölerek arabanın o andaki hızını tahmin etme fırsatına sahip olduğumuzu not ediyoruz:


Örneklerden hız tahmini nerededir ve oluşturmaya çalıştığımız ekstrapolasyon fonksiyonunun türevidir.

Benzer şekilde daha yüksek dereceli türevler için - ivme, sarsıntı, vb.:


Bu formüllerden görülebileceği gibi, yer değiştirmenin giderek daha yüksek türevlerinin bir tahminini elde etmek için, mevcut örnekten önceki giderek daha fazla örneğin dikkate alınması gerekir: hızı belirlemek için, ivme için iki örneğe ihtiyaç vardır. - üç, pislik için - dört vb. Bir yandan, tahminimizde hareketin dinamik özelliklerini ne kadar çok dikkate alırsak, o kadar büyük modelleme yeteneği elde edeceğiz; Öte yandan, giderek daha "eski" hale gelen okumalarda yer alan yararlı bilgiler önemli ölçüde geçerliliğini yitiriyor. Örneğin, bir dakika önce 30 km/saat hızla gidiyor olmamızın şu an için bize hiçbir faydası olmayacak: o zamandan bu yana birkaç kez hızlanmış, yavaşlamış, hatta durmuş olabiliriz. Bu nedenle, yer değiştirmenin giderek daha yüksek türevlerine ilişkin tahminler gerçeklikten giderek uzaklaşmaktadır; Ayrıca belirli bir türevin hesaplanmasındaki hatanın yer değiştirmenin genel analitik modeline katkısı da bu türevin sırası arttıkça artar. Eğer öyleyse, belirli bir düzenden başlayarak, detaylandırmak yerine sonlu farklar kullanılarak tahmin edilen dinamik özellikler modelimizi bozmaktan başka bir işe yaramaz.

Gerçek dünya testlerine dayanarak, sarsıntı tahmininin, özellikle "ortalama" GPS sinyal kalitesi durumlarında, zaten yeterince kötü olduğu ve yarardan çok zarar getirdiği görülmektedir. Öte yandan, neyse ki en yaygın araba dinamiği senaryoları, zaman içinde sırasıyla 0., 1. ve 2. dereceden polinom denklemleriyle tanımlanan dinlenme, düzgün ve düzgün harekettir.

Düzgün değişken hareketin ikinci dereceden modelinin çoğu yol durumunu tanımlamamız için oldukça yeterli olacağı ortaya çıktı ve bunun için dinamik özelliklere (hız ve ivme) ilişkin az çok yüksek kaliteli tahminlere sahibiz. Okuldaki fizik dersini hatırlayarak, istenen ekstrapolasyon fonksiyonu için kabaca analitik bir ifade hazırlayabiliriz:


Atılacak tek bir adım kaldı: Tanım alanı zamanın anından itibaren başlıyor, dolayısıyla hesaplamalarda zamanı aynı andan itibaren saymak daha uygun.

Sonuç olarak fonksiyon şu şekli alacaktır:


Bu fonksiyonun dikkate değer bir özelliği, daha önce de belirtildiği gibi problemimizin formülasyonunda yer alan tanım alanının tamamındaki düzgünlüğüdür.

Şimdi cihazdan birkaç gerçek yer değiştirme örneği alalım ve bunları her aralıkta tahmin etmeye çalışalım (her ne kadar daha önce belirlenmiş olsa da, örnek geldiği anda hemen bir sonraki fonksiyona geçeceğiz çünkü daha güncel veriler içeriyor):

Açıklık sağlamak adına, verilerin nispeten düşük kaliteli bir GPS sinyaliyle alındığını ancak şekildeki durumun oldukça gerçek olduğunu ve her kullanıcının başına gelebileceğini belirtelim.

Her bir ekstrapolasyon polinomunun düzgünlüğü, ilgili zaman aralığında mükemmel bir şekilde görülebilir, ancak sorun, aralıkların birleşim noktalarında, genel gri eğrinin, bazen oldukça fark edilebilir süreksizliklere maruz kalmasıdır.

Zamanın üçüncü anında boşluğun büyüklüğüne ekstrapolasyon hatası diyelim. Aslında her tahminimizin kendi zaman aralığı sonunda ne kadar hatalı olduğunu gösteren de bu değerdir. Aşağıdaki ifadeyi kullanarak hata değerini hesaplayabilirsiniz:


Ne yazık ki, fonksiyonları değiştirerek hatayı sıfıra indiremeyiz çünkü bu, gelecek vizyonunun yüzde yüz doğruluğuna eşdeğer olacaktır. Bu, tek bir fonksiyon oluşturma konusundaki başlangıçtaki problemimizi çözmek için, parçalı ekstrapolasyon polinomlarını bir şekilde "yapıştırmamız", yani eklemlerde ortaya çıkan hataları düzeltmemiz gerektiği anlamına gelir.

Hata Düzeltme Yaklaşımı

Yukarıda seçilen gösterime uygun olarak, gayri resmi olarak yeni bir referans geldiğinde noktada olduğumuzu söyleyebiliriz, yani. önceki ekstrapolasyon polinomunun biriktirdiği hata miktarı kadar gerçek konuma göre kaydırılır.

Bir yandan kullanıcıya verilen verilerin gerçeğe uygunluğu açısından bakıldığında, mümkün olan en iyi şekilde Hatayı düzeltmek için fonksiyon bir sonraki polinomun başlangıç ​​noktasına kırılacaktır, ancak bunu yapamayız çünkü bu durumda haritadaki işaretçiyi tekrar "ışınlayacağız" ve sürücünün yönünü karıştıracağız.

Açıkçası, eğer değerdeki ani bir değişiklik kabul edilemezse, hata düzeltmesi sıfırdan farklı bir zaman alacaktır. Hata birikimini önlemek amacıyla hata düzeltme işleminin bir sonraki sayım gelmeden önce tamamlanmasının tavsiye edildiği de açıktır.

Yer değiştirme numuneleri arasındaki zaman aralıklarının stokastik yapısından dolayı, güvenilir bir şekilde belirlemek mümkündür. kesin zaman düzeltme mümkün değildir. Bu nedenle, ilk yaklaşım olarak, hata düzeltme süresini, belirli değeri gelecekte deneysel olarak seçilecek olan sabit bir değer biçiminde sabitleyeceğiz.

Tekrar gayri resmi bir dille konuşursak, bir hatayı düzeltmek için, bir noktadan bir sonraki ekstrapolasyon polinomuna - bir eğriye - sorunsuz bir şekilde "geri dönmeniz" gerekir.

Hata düzeltme sürecini tanımlamak için, bireysel düzeltme fonksiyonlarını, ilgili düzeltme fonksiyonunun belirli bir anda değeri alacağı ve sıfıra eşit olduğu andan itibaren başlayacağı şekilde tanıtmak uygundur:


İlgili enterpolasyon polinomuyla böyle bir düzeltme fonksiyonu eklersek, kilit noktalarda ofset hatası düzeltmesi sağlayacağız:
Ayarlanmış yer değiştirme fonksiyonuna ekstrapolasyon polinomunun ve karşılık gelen düzeltme fonksiyonunun toplamı diyelim:
Yukarıda açıklanan düzeltme fonksiyonlarının özellikleri sayesinde, fonksiyonların çok önemli bir özelliğini elde ettiğimizi unutmayın - bunlar zaten "ofsetle dikilmiştir", yani. noktalardaki molalara tolerans göstermeyin:
Düzeltilmiş fonksiyonlar kümesi, tek bir durum için olmasa bile, her zaman tanımlanan arzu edilen yer değiştirme modeli gibi görünebilir: noktalarda yer değiştirme süreksizliklerinin olmamasına rağmen, bu işlevler kümesinin türevleri genel durumda hala süreksizdir.

Spesifik olarak, birinci türevin (hız) süreksizliğiyle ilgileniyoruz, çünkü başlangıç ​​gereksinimleri evrensel düzgünlük koşulunu içeriyor; Hızın evrensel sürekliliği koşulu. Bunu dikkate alarak, düzeltilmiş fonksiyonların türevlerini de "dikmek" için düzeltme fonksiyonlarının gerekliliklerini genişletmek gerekir:


Bu denklem düzeltilmiş fonksiyonlar kümesinin düzgünlüğü için bir koşuldur. Düzeltilmiş fonksiyonların tanımını denklemin her iki tarafına koyarsak, şunu elde ederiz:
Düzeltme süresi dolduktan sonra düzeltme fonksiyonunun sıfır değer aldığını daha önce belirtmiştik. Düzeltme fonksiyonuna bir gereksinim daha ekleyelim - düzeltme süresi dolduktan sonra türevinin de sıfır değerlerini almasına izin verin:
Daha sonra, düzeltme süresinin her zaman örnekler arasındaki aralıktan daha az olduğu varsayımı altında, bir sonraki örnek geldiğinde düzeltme fonksiyonunun türevinin zaten sıfır olacağını varsayabiliriz. Daha sonra düzgünlük koşuluna dönersek şunu elde ederiz:
Buradan ifade edelim:

Bunun sonlu farklar kullanılarak yapılan bir hız tahmini olduğuna dikkat edin, hadi onu değiştirelim:


Sağ taraf, hız ekstrapolasyon hatasını temsil eder - önceki ekstrapolasyon polinomundan elde edilen hız ile "gerçek" hız okuması arasındaki fark. Artık düzeltme fonksiyonlarının sınır koşullarını bir araya getirebiliriz:
Bunlar şu şekilde açıklanabilir: Bir düzeltme fonksiyonu bulmanız gerekir, böylece:
  • düzeltme aralığının başlangıcında değeri yer değiştirme ekstrapolasyon hatasıyla çakışıyordu;
  • düzeltme aralığının başlangıcında türevinin değeri hız ekstrapolasyon hatasıyla çakıştı;
  • düzeltme aralığının sonunda ve ayrıca fonksiyonun kendisinin ve türevinin değeri sıfırdı.

Hata Düzeltme İşlevinin Seçilmesi

Yukarıdaki dört koşulu tam olarak karşılayan düzeltme fonksiyonları için tek bir analitik ifade elde etmenin çok zor olduğunu belirtmekte fayda var. Sorun, düzeltme süresinin sona ermesinden sonra gelen tanım alanının bu kısmında yatmaktadır - sayısal eksenin geri kalanının tamamında fonksiyonun ve türevinin sıfır değerlerini elde etmeniz gerekir. Sorunu basitleştirmek için, düzeltme fonksiyonunun istenen analitik ifadesinin tanım alanını düzeltme aralığına indireceğiz ve üst sınırından sonra fonksiyonun değerini ve türevini önemsiz bir şekilde sıfır olarak kabul edeceğiz (neyse ki, program kodu düzeyinde şubelerin varlığı nedeniyle böyle bir fırsatımız var).

Resmi olarak, bu teknik dikkate alındığında, parçalı düzeltme fonksiyonu, düzeltme aralığı ve aşağıdaki sabit 0 için bir ifadedir, ancak, eğer noktada sınır koşulları karşılanırsa, düzeltme fonksiyonunun kendisinde veya düzeltme fonksiyonunda herhangi bir süreksizlik olmayacaktır. birinci türev. Yüksek türevlerin süreksizlikleri bizi ilgilendirmediği için (istenen fonksiyonun düzgünlüğünü bozmazlar), aşağıda düzeltme fonksiyonunun sıfır "kuyruğundan" bahsetmeyeceğiz ve sınır koşullarını bir formülle yeniden formüle edeceğiz. daha uygun biçim:


Hız ekstrapolasyon hatasını şu şekilde gösterelim:
Şimdi için analitik bir ifade tanımlamamız gerekiyor. Sınır koşullarına ek olarak programın ergonomik gereklilikleri nedeniyle, GPS işaretleyicisinin "seğirmemesi" için düzeltme fonksiyonunda düzeltme aralığı sırasında mümkün olduğunca az uç nokta ve bükülme olması gerekir.

Bu gereksinimleri karşılayan en basit fonksiyon yine bir polinomdur - zaman içinde mümkün olan minimum dereceye sahip bir polinom (teorik olarak temel fonksiyonlar arasında örneğin sinüs de benzer özelliklere sahiptir, ancak değerini hesaplamak bakış açısından daha pahalıdır) işlemci süresi).

Sınır koşulları önemsiz olmayan dört denklemden oluşan bir sistem olduğundan, düzeltme fonksiyonunun yeterli parametrelendirmesini sağlayan polinomun minimum derecesi üçüncüdür. Analitik bir ifade oluştururken, sayımın yapıldığı andan itibaren geçen süreyi saymanın daha uygun olduğu göz önüne alındığında (tanımdakiyle tamamen aynı), gerekli polinom aşağıdaki formu alacaktır:


Bu ifadeyi sınır koşulları sistemine yerleştirip ve sabitlerine göre çözerek aşağıdaki değerleri elde ederiz:
Sonuç olarak, düzeltme fonksiyonlarını açıklanan şekilde tanımlarsak, düzeltilmiş fonksiyonlar her zaman düzgün olan tek bir ekstrapolasyon fonksiyonunda birleşir. Hantallığı nedeniyle tam ifadesini vermeyeceğiz.

Not: Düzeltme süresini seçerken son yanlışlık varsayımda kaldı - muhakememiz, okumalar arasındaki aralığın her zaman daha az olacağı koşuluna dayanıyordu:


Oluşturulan modelin güzel bir özelliği, yalnızca örnekler arasındaki ortalama süreyi aşmayacak şekilde seçim yapmamızın gerekmesidir: eğer bireysel aralıklar 'den küçükse, o zaman hatanın düzeltmeye zamanımız olmayan bir kısmı olur. çok kısa bir aralık aşağıdakilerden birinde düzeltilecektir. Bunu yapmak için, ekstrapolasyon hatasını normal ekstrapolasyon fonksiyonundan değil, düzeltilmiş olandan hesaplamak yeterli olacaktır:
Aşağıdaki şekil, gerçek veriler kullanılarak oluşturulan son ekstrapolasyon fonksiyonunun grafiğinin bir örneğini göstermektedir:

Biçimsel problem çözüldü, ortaya çıkan eğri belirtilen tüm koşulları sağlıyor ve oldukça güzel görünüyor. Bu konuda rahat olunabilir, ancak gerçek dünyanın özellikleri, inşa edilmiş idealleştirilmiş sistem için bazı zorluklar sunmaktadır.

Aşağıda verilen tüm kararların doğrudan uygulamaya konulduğuna dair çekince koyarak bunlardan bazılarına daha detaylı bakalım. program kodu Matematiksel modelin dışında.

Matematiksel modelin gerçek koşullara uyarlanması

Ters yönde işaretleyici hareketinin yasaklanması

Son grafikte, bazı durumlarda, gerçek ölçümlere göre kullanıcı rota boyunca yalnızca ileri doğru giderken bile işlevin azalmaya başladığını görebilirsiniz. Bu durum, tahminimizin hareket hızını fazlasıyla abarttığı durumlarda meydana gelir. Öte yandan, gerçekte bir araba yalnızca iki nedenden dolayı ters yönde hareket eder: sürücü arabayı gerçekten geri vitese taktı ve geri gitti (çok nadir bir durum) veya U dönüşü yaptı.

U dönüşü durumunda yol durumu önemli ölçüde değişir ve bu da navigasyon rotasının yeniden yapılandırılmasını gerektirir; bu ayrı bir konudur ve bu makalenin kapsamına girmemektedir.

Konumun ekstrapolasyonunun sonuçlarını doğrudan kullanırsak, işaretleyicinin rotanın başlangıcına doğru olan tüm hareketleri karşılık gelir gerçek hareket Aynı yöne giden araba yok olan bir azınlık olacak. Bunun ışığında kullanıcıları yanıltmamak adına işaretleyicinin rota değiştirilmeden geriye doğru hareket etmesinin tamamen yasaklanmasına karar verildi.

Böylesine katı bir koşulun matematik dilinde tanımlanması zordur, ancak program kodunda uygulanması nispeten kolaydır. Başlangıç ​​olarak, işleyişinin özellikleri nedeniyle model zamanının ayrık doğasını hesaba katalım. bilgisayarlar Her durumda, seçilen bazı noktalarda ekstrapolasyon sonuçlarını alacağız.

Eğer öyleyse, ekstrapolasyonlu yer değiştirmenin azalmamasını sağlamak zor olmayacaktır: elde edilen yeni değeri öncekiyle karşılaştırmak yeterlidir ve mevcut değer daha küçük çıkarsa, onu öncekiyle değiştirin. bir. Bu tekniğin görünürdeki kabalığına rağmen, ekstrapolasyon fonksiyonunun düzgünlüğünü bozmayacağız çünkü düzgün bir fonksiyon boyunca geriye doğru hareket etmeye başlamak için önce tamamen durmanız gerekir.
Gelecekte geri hareketi önlemek için matematiksel olarak doğru değerleri eski değerlerle değiştirdiğimiz çalışma moduna zorunlu durma modu adı verilecek.

Ekstrapolasyon hataları çok büyük ve numuneler arasındaki aralıklar çok uzun

Bir anlamda niteliksel bir fonksiyon inşa etmiş olmamıza rağmen bazen ekstrapolasyon hataları kabul edilemeyecek değerlere ulaşabilmektedir. Bu durumlarda program, standart araçları kullanarak hataları düzeltmeye çalışmaktan vazgeçmelidir. Tahmin edilen verilerin alakasız hale geldiği başka bir durum şu durumlarda ortaya çıkar: yeni geri sayım Bazı nedenlerden dolayı, ofset çok uzun sürede ulaşmıyor; modelleme yeteneği, son okumanın alındığı andan itibaren önemli ölçüde düşüyor. Tahmin etme girişimleri ile utanmaz yalanlar arasındaki çizgiyi aşmamak için, bir modele güvenmek genellikle üç saniyeden fazla sürmez.

Basitlik açısından, ilk olumsuz durumu düzeltilemez ofset hatası, ikincisini ise düzeltilemez zaman hatası olarak adlandıracağız.

Bu tür hataların her biriyle iki şekilde çalışabiliriz:

  • Yukarıda belirtilen zorunlu durdurma moduna girin. Bu yaklaşımın avantajı, coğrafi konum işaretçisinin arazi haritası üzerindeki düzgün hareketini korumasıdır. Ancak zorunlu durma modunda ne kadar uzun süre kalırsak, kullanıcıyı gerçek konumu hakkında o kadar kötü bilgilendiririz;
  • GPS işaretçisini anında son referans konumuna ışınlayın. Burada tam tersine kullanıcıya sunulan bilgilerin güvenilirliği adına ergonomiden ödün veriyoruz.
Uygulamamız için ilk yöntem seçildi çünkü hareketin düzgünlüğüne özellikle dikkat edildi.

Uzun süreli zorunlu durma modu

Zorla durma moduna herhangi bir giriş, GPS işaretleyicinin ters hareketini yasaklamak amacıyla daha az doğru konum verilerinin üretilmesiyle ilişkilidir. Özellikle olumsuz durumlarda kullanıcıyı yanlış bilgilendirmemek için modelimiz ayrıca, giriş nedeni ne olursa olsun, belirli bir süre sonra işaretleyiciyi son gerçek konuma "ışınlayarak" zorunlu durdurma modunu kesme yeteneği ile donatılmıştır. mod (ekstrapolasyonun matematiksel sonucu veya düzeltilemeyen ofset/zaman hataları). Şu anda, doğruluk "kalıntıları" uğruna hareketlerin düzgünlüğünden bile feda edilmesi gerekiyor.

Sonuçlar

Yapılan çalışmanın sonucunda, sağlanan verilerin doğruluğu ile ekranın görsel ergonomisi arasında iyi bir denge sağlayacak şekilde rota rehberliğini geliştirmeyi başardık. Özellikle iyi bir sinyal nedeniyle GPS sensöründen yüksek kaliteli veri alındığında kullanıcı oldukça rahat hissedecektir.

Açıklanan ekstrapolasyon sistemi, coğrafi konumlandırmayı kullanan diğer uygulamalarda kullanılabilir. Rota kavramının ve dolayısıyla başlangıcına göre yer değiştirmenin mevcut olmadığı durumlarda, tek boyutlu bir skalerden matematiksel model, çok boyutlu bir vektör modeline genelleştirilebilir. Modelin kendisini kodda uygulamak, popüler programlama dillerinin hiçbirinde sorun değildir; yalnızca basit aritmetik işlemler gerektirir.

Daha ileri geliştirme yollarına gelince, makalenin başında sensörden gelen "ham" konumsal verilerde bahsedilen ölçüm hatasına dikkat etmekte fayda var. Tahminlerimizdeki hataları zaten düzeltmeye çalışıyorsak, o zaman ölçüm hatalarıyla mücadele gelecek için ayrı bir iş katmanıdır, zordur, ancak bunun için daha az ilginç değildir. Görüntülenen bilgilerin doğruluğu açısından bu alandaki potansiyel başarının faydaları göz ardı edilemez.

Etiketler: Etiket ekleyin


2 CBS hem bir referans kitabı hem de internet erişimi olmadan çalışan bir kitaptır. İstediğiniz şehrin haritasını ve büyük bir veritabanını önceden indirmeniz yeterli faydalı bilgiler telefonunuzda görünecek! Aşağıdaki doğrudan bağlantıyı kullanarak Android için 2 GIS'i apk formatında ücretsiz olarak indirebilirsiniz.

2 GIS mobil uygulaması hiçbir şekilde masaüstü bilgisayar versiyonundan aşağı değildir ve şehir altyapısı hakkında kesinlikle her şeyi bilir. Trafik sıkışıklığı olmadan en yakın benzin istasyonuna, ATM'ye veya kafeye nasıl gidebileceğinizi gösterecek, noter, kuaför, eczane, cami, araba servis merkezi, alışveriş merkezi, 24 saat açık bakkal bulmanıza yardımcı olacak. Turistler için uygulama en çok bilen bir şehir rehberi içeriyor ilginç yerler ve en popüler kuruluşlar.

Android için 2 GIS navigatörünün özellikleri:
- 9 ülke ve 330 Rusya şehri: Moskova, Yekaterinburg, Tyumen, Novosibirsk, Kazan, Perm, Lipetsk, Izhevsk, Saratov, Krasnodar, vb.;
- İstikrarlı işİnternet olmadan ve dolaşımda, uçakta, metroda işlevsellikten ödün vermeden - her yerde bir çıkış yolu var;
- Döşeme yürüyüş rotaları toplu taşıma araçlarını (otobüs, troleybüs, metro, tramvay) transferli veya transfersiz kullanmak;
- Araba sürerken trafik sıkışıklığını, hız kameralarını, hız tümseklerini ve ortalama seyahat süresini gösteren yolun gerçek durumu dikkate alınır;
- Belirli bir bina, ev numarası, iletişim için telefon numarası, girişin hangi tarafta olduğu hakkında gerekli bilgileri öğrenin;
- Kullanışlı filtreler, şuna göre arama yapın: anahtar kelimeler ve başlıklar.

Geleneksel navigatörlerin aksine, Android'deki 2 GIS ile Rusya'nın güncel bir haritasına ve birçok binanın bağlantılarını, adreslerini ve fotoğraflarını içeren büyük bir dizine sahip olursunuz. Geliştiriciler programı aylık olarak güncelleyerek ilgili en son bilgileri ve yeni özellikleri ekler. Örneğin son zamanlarda taksi hizmetleri fiyatlarını karşılaştırıp hemen sipariş verebilirsiniz.

Güzergah boyunca sesli rehberlik 2GIS'te göründü. Artık uygulama bir navigatör olarak kullanılabilir: trafik sıkışıklığını, çitleri ve açık köprüleri dikkate alarak sizi organizasyonun girişine yönlendirecektir. Gezgin iOS'ta zaten mevcuttur ve Windows Telefonu ve 22 Ağustos'tan itibaren yeni bir tasarıma sahip Android için 2GIS'in yeni sürümünde.

Navigasyon modu, trafik durumunu dikkate alarak en uygun rota üzerinde bir yere ulaşmanıza yardımcı olur. Cihaz ekranı bir sonraki manevraya kadar olan yolu ve mesafeyi tam olarak gösteriyor ve sesli uyarılar sürücünün dikkatinin yoldan dağılmamasına olanak tanıyor. Sürücü bir dönüşü kaçırırsa navigasyon cihazı derhal rotayı değiştirecektir.

“2GIS haritaları ve yol ağlarını sürekli güncelliyor. Evlerin etrafı çitlerle çevrili, organizasyonların giriş ve çıkışlarının bulunduğu birçok iç geçidi biliyoruz. tam olarak gerekli girişe ve navigatörümüz yol gösteriyor, "

2GIS'in araştırma ve geliştirme departmanı müdürü Pavel Mochalkin diyor.

Uygulamanın kendisi gibi, gezgin de Rusya'nın tüm şehirlerinde ve 2GIS'in mevcut olduğu BDT'de İnternet bağlantısı olmadan çalışır. Yaklaşık seyahat süresini hesaplar ve kullanıcının mekana ne zaman varacağını gösterir. Bilinen yerlerde trafik sıkışıklığını, köprü açılış programlarını ve yol kapanışlarını dikkate alır. Oraya ulaşmanın iki yolu varsa gezgin bir seçenek sunacaktır.

2GIS navigatörü, iOS 8.0 ve üzeri, Windows Phone 8.1 ve üzeri sürümlere sahip iPhone'da çalışır. Kullanmak için akıllı telefonunuzda 2GIS'i güncellemeniz veya AppStore veya Windows Mağazasından ücretsiz olarak indirmeniz gerekir.

“Android'deki 2GIS'in aylık kitlesi uzun süredir 8 milyondan fazla kullanıcı olduğundan, yeni versiyon Android için 22 Ağustos'tan başlayarak birkaç hafta içinde kademeli olarak yayınlayacağız. Bu, diğer platformlara göre daha uzundur çünkü Android uygulamasında navigatörün görünümünün yanı sıra tasarım da tamamen değişir. Rastgele kişilerin %5'i güncellenmiş 2GIS'i indirme fırsatını ilk elde edecek Android kullanıcıları, zaten sahip olan önceki sürüm. Sonra bir %5 daha, sonra bir tane daha. Yeni 2GIS'i hemen kullanmak istiyorsanız, Google Play beta sürümünü “2GIS beta” isteği üzerine indirebilirsiniz.

Pavel Mochalkin bildiriyor.

2GIS navigatörünün çalışma prensibinin açıklaması

2GIS navigatörü istenen organizasyona giriş için bir yol oluşturur ve iki taneye kadar teklif sunar optimum seçenekler rota (1 fotoğraf - Android'de örnek, 2 fotoğraf - iOS'ta örnek).

2GIS navigatörü trafik sıkışıklıklarını hesaba katar ve bunların etrafında bir rota oluşturur (1 fotoğraf - Android'de örnek, 2 fotoğraf - iOS'ta örnek).


2GIS navigatörü yol boyunca size rehberlik eder, bir sonraki manevrayı kaç metre sonra yapmanız gerektiğini söyler ve varış noktanıza varış zamanınızı hesaplar. Kullanıcı amaçlanan rotadan saparsa, gezgin rotayı hemen yeniden oluşturur (1 fotoğraf - Android'de örnek, 2 fotoğraf - iOS'ta örnek).


2GIS navigatörü blok içindeki yolları bilir ve çitlerin ve bariyerlerin etrafından doğrudan istenen girişe giden bir rota oluşturur. Çevrimdışı çalışır (1 fotoğraf - Android'de örnek, 2 fotoğraf - iOS'ta örnek).


Tüm akıllı telefonlarda Android tabanlı Yeni tasarımlı ve navigatörlü 4.1 ve üzeri 2GIS, Eylül başında satışa sunulacak.

2GIS: dizin, navigatör ve çevrimdışı haritalar - geliştirici DoubleGIS, LLC'nin navigasyon programı. Hem bilmediğiniz yerlere seyahat ederken hem de memleketinizde dolaşırken vazgeçilmez bir yardımcı. 50 milyondan fazla indirme Oyun Pazarı!

Bilmediğiniz bir şehri ziyaret etmeyi mi planlıyorsunuz? Siz ve arkadaşlarınız merkezde bir yerde yeni bir kafede öğle yemeği yemeyi kabul ettiniz mi? Toplu taşımada bir rota bulamıyor musunuz? 2GIS size yardımcı olacaktır. Detaylı haritalar, sayısı sürekli artan 9 ülkedeki 300'den fazla şehir için yeni ufuklar açacak. 2,5 milyondan fazla indirilmiş kuruluşun yer aldığı yerleşik dizin, ihtiyacınız olan kuruluşu bulmanıza, açılış saatlerini, resmi web sitesini ve sayfalarını göstermenize yardımcı olacaktır. sosyal ağlar. Bilgiler sürekli olarak güncellenmekte ve aynı zamanda kuruluşun büyük bir binada yer alması halinde ana girişin tam konumu ve alışveriş merkezlerinin kat haritaları gibi gezinme unsurlarını da içermektedir. En büyük avantajı çevrimdışı moddur, böylece ağ olmadığında veya hesabınızdaki para bittiğinde herhangi bir kritik anda dizine erişebilirsiniz.

Android'de 2GIS'in ana özellikleri:

  • ile çevrimdışı haritalar arka plan bilgisi;
  • yaya ve araba navigatörü;
  • 2GIS şehriniz hakkında her şeyi bilir;
  • dikkate alınarak esnek rota planlama sistemi toplu taşıma ve trafik sıkışıklıkları;
  • kullanmadan hizmetlerle etkileşim üçüncü taraf uygulamaları;
  • yerleri arkadaşlarla paylaşma yeteneği.

Android için 2GIS'i tamamen ücretsiz indirinİnternet portalımızdan aşağıdaki doğrudan bağlantı aracılığıyla.

Tanım:

sağlayan navigasyon uygulamaları çeşitli bilgiler doğru yere nasıl gidebileceğiniz, organizasyonların yerleri, rota planlaması ve çok daha fazlası hakkında. Tüm bu bilgiler 2GIS uygulamasında bulunabilir. Geliştiriciler Rusça, İtalyanca ve İngilizce dilleri, pek çok bilgi: (bunlar mağazalar, benzin istasyonları, eczaneler). Ayrıca binaların 3 boyutlu modellerini görüntülemek ve kat sayılarını görmek de mümkün. Çok yüksek seviye detaylarda garajları ve çitleri görebilirsiniz. Uygulamanın çevrimdışı modu vardır. Bugün "2GIS" Rusya Federasyonu'nun 212'den fazla şehrinde kullanılabiliyor.

"2GIS" uygulamasını başlattıktan sonra şunu görüyoruz " ana ekran"yer imlerini (şirketler, harita, yol tarifleri, favoriler) içeren. Ayrıca ekranın üst kısmında seçilen şehri arayabiliriz. Ekranın sağ alt kısmında “ayarlar” sekmesine girebilirsiniz.

“Firmalar” sekmesine tıkladığınızda, aşağıdaki kategorilere göre bir nesneyi seçebileceğiniz bir pencere açılacaktır:
- Yemek yemek
- Barlar, kulüpler
- Oteller
- Araba servisi
- Eczaneler
- ATM'ler
- Bankalar
- benzin istasyonu
- Taksi

“Harita” sekmesine tıkladığınızda ölçeği değiştirebileceğiniz ve konumunuzu öğrenebileceğiniz bir şehir haritası açılacaktır. Harita çok iyi, ayrıntılı, tüm sokaklar, ev numaraları ve sokak adları görünüyor. Bir bina seçerken içinde yer alan organizasyonları görebilirsiniz (çok uygun).

“Oraya nasıl gidilir” sekmesine tıkladığınızda bulunduğunuz yerden bitiş noktasına kadar rota oluşturabileceğiniz bir pencere açılacaktır. Beğendiğiniz her şeyi favorilerinize ekleyebilirsiniz.


Ayarlarda dört sekme vardır (kataloglar, gezinme, genel, program hakkında). Dizinler, cihazınızdaki 2GIS uygulama dosyalarının konumu hakkında bilgi içerir. Navigasyonda iki tür haritayı (3D veya 2D), ekranı karartmayı ve konum belirlemeyi seçebilirsiniz. “Genel” sekmesinde uygulama dilini, sistem klavyesinin kullanımını vb. seçmeliyiz.

Program hakkında sekmesinde görebilirsiniz son sürüm program hakkında, geliştiricilere yazın, 2GIS'teki reklamlara bağlantılar bulun.