Gerçek zamanlı konum izleme - windows program veya tarayıcı tabanlı?

5 Cevap php

Ben bin, belki birkaç kişi gerçek zamanlı olarak, bir kaç yüz izlemek istiyorum.

En donanım yönleri dizildi ve ben bir veritabanına veri alabilirsiniz diyelim.

Şimdi, ben onu dışarı almak ve gerçek-zamanlı olarak, bunu göstermek istiyorum.

Weeeell ... "real-yeterince" zaman. Diyelim ki bir binanın bir floorplan çizmek ve herkese her 1-5 saniye çizmek istiyorum diyelim.

(Ben bir düğmeye tıklama insanların sadece belirli "çeşit" göstermek isteyebilirsiniz, ben vs, veri madenciliği gerekiyor, ama en kötü durum senaryosu ile sopa izin verir).

Ben bu tür bir şey PHP ile yeterince rahat değilim, ama değil. Ben şahsen Delphi kodlu bir windows uygulaması ile daha mutlu olurdu, ama eğilim dayalı her şeyi tarayıcı yapmak gibi görünüyor.

Yani, soru, sanırım bir tarayıcı bu işleyebilir olmadığını ve bir windows tabanlı veya tarayıcı tabanlı çözüm için zorlayıcı argümanlar olup olmadığıdır.

Tarayıcı tabanlı (ikinci birkaç bin veri noktaları göstererek), ve pencereler için ezici argümanlar vardır bu işleyebilir o zaman ben tarayıcısı tabanlı için gidin ve birkaç yeni hileler öğreneceksiniz sanırım. Bariz avantajı Ben de Google Maps üzerinde (araç) takibi için benim kod büyük bir kısmını yeniden kullanabilirsiniz varlık.

5 Cevap

Işinizin çoğu muhtemelen mekansal etkin ilişkisel veritabanı yapılacaktır. Örneğin, PostGIS veri sınırlayıcı kutu içindeki noktaları veya daha sofistike uzamsal yüklemler (ST_Contains, ST_Crosses, ST_Intersects, ST_Touches, ...) yanı sıra her zamanki SQL koşulları katılır ve seçebilirsiniz. Mekansal seçer şeyleri hızlandırmak için bir kayma dizin kullanmanız gerekir.

Bu durumda, sizin app ölçüde bir sunum katmanı olacaktır. Bu durumda, sizin için kolay olacaktır ne olursa olsun kullanabilirsiniz. Tarayıcısı tabanlı avantajı varsayılan olarak çapraz-platform istemci-sunucu, ancak bu sizin için önemli olmayabilir olmasıdır.

Hız işlemek ile ilgili olarak, bu gerçekten sizin haritayı işlemek için planlama nasıl bağlıdır. Google Maps için speed tests mevcuttur. Ancak, ben bir google maps tip arayüz planlıyorsanız several thousand puan pimleri bir bulanıklık dönüşmesi için gidiyoruz olduğunu sanıyorum. Eğer bir arayüz maketini var mı?

Başka karşı app bir tür daha mutlu olurdum, o app bu tip yazmak. Sadece bir tarayıcı uygulaması yapmak için bir şey bir tarayıcı uygulaması yapmayın.

Öncelikle sizin app hedef (ve büyüklüğü, kaç eşzamanlı Müşterileri?) Ne olduğunu anlamak gerekir, ve bir yağlı müşteri veya ince / web biri, onu en iyi uygun eğer karar. Sonra uygulama tür tahmin yük yönetmek için mümkün olduğu kontrol edilmelidir. Birkaç bin DataPoint Eğer ana veya süre içinde mümkün teknolojisi ile her saniye kadar görüntüleyebilir? Eğer sonuca ulaşmak için mevcut çok çekirdekli işlemcileri yararlanabilmesi için yardım mulithread misiniz? Hangi teknoloji bunu yararlanmak izin verir?

Belki biraz eski bir şapka gibi görünüyor, ancak tarayıcı tabanlı gitmeye karar verirseniz, bir görüntüye noktaları önceden render olabilir ve sadece görüntü göstermek?

WebSockets

WebSockets, sunucu / tarayıcı veri alışverişi için yeni bir standart HTML5 bir göz atın:

WebSockets is a technology providing for bi-directional, full-duplex communications channels, over a single Transmission Control Protocol (TCP) socket, designed to be implemented in web browsers and web servers.

Ne zaman kullanılabilir hale sunucu, istemci çekme isteklerinin yükü kaldırarak, müşteriye yeni verileri zorlayabilir.

PHP sürümlerinde (ama Delphi) dahil Wikipedia sayfası listeler available server-side implementations,.

WebSockets JavaScript, websockets.org page says bağlı değildir:

In addition, the Web Socket protocol can be used to support a diverse set of clients (e.g. JavaScript, Adobe Flex, JavaFX, Microsoft Silverlight, etc.). However, the HTML5 specification only defines support for JavaScript, which is limited to text-based protocols. To serve other client-types and support binary protocols you will need to look to external offerings.

İleti verileri (superobject'e veya lkJSON gibi açık kaynak uygulamaları gibi) JavaScript tarafından desteklenen ve Delphi için de mevcuttur JSON biçiminde, değiş tokuş edilebilir.


Ajax

Delphi için Ajax dayanan zengin internet uygulamaları intraweb veya ExtPascal kullanılarak inşa edilebilir. ExtPascal bir nesne Ext JS için bağlayıcı Pascal (Delphi, FreePascal / Lazarus) sarıcı / tam bir GUI Ajax çerçevesi ve tüm ana web tarayıcıları için şeffaf destek sunmaktadır: IE 6 +, Firefox 1.5 +, Safari 3 +, Opera 9 + ve Chrome 2 + herhangi bir istemci tarafı platformda (PC, akıllı telefonlar, iPhone, PDA, vb). Çevrimiçi demo uygulamalar: FishFacts, more.

Bağlı tüm web tarayıcı sunucudan gelen verileri aktarır Ajax Push (XML veya JSON formatında) veri (aka Reverse Ajax / Comet) teklifi "HTTP server push" müşteriler her sunucu değişiklikleri veri. Müşteriler ilgilendiğiniz bilgilere 'abone' olabilir