質問

リアルタイムで数百人、おそらく数千人を追跡したいと思います。

ハードウェアの側面が整理され、データをデータベースに入れることができるとしましょう。

今、私はそれを出して、リアルタイムで見せたいです。

weeeell ... "実生的な時間。建物のフロアプランを描き、1〜5秒ごとに全員をプロットしたいとしましょう。

(ボタンをクリックするだけで、特定の「種類」の人々だけを見せたいかもしれません。データを作成するなどが必要ですが、最悪のシナリオに固執しましょう)。

私はこの種のことではありませんが、PHPに十分快適です。私は個人的には、DelphiでコーディングされたWindows Appで幸せになりますが、その傾向はすべてをブラウザに基づいていることです。

したがって、問題は、ブラウザがこれを処理できるかどうか、およびWindowsベースのソリューションまたはブラウザベースのソリューションに対して説得力のある引数があるかどうかだと思います。

ブラウザベースがこれを処理できる(1秒間に数千のデータポイントを表示)、Windowsの圧倒的な引数がない場合、ブラウザーベースに行って、いくつかの新しいトリックを学ぶと思います。明らかな利点は、Googleマップでの(車両)追跡のコードの大部分を再利用できることです。

役に立ちましたか?

解決

あなたの作業のほとんどは、おそらく空間的に有効なリレーショナルデータベースで行われます。たとえば、PostGISは、境界ボックス内のデータポイントまたはより洗練された空間述語(st_contains、st_crosses、st_intersects、st_touch、...)および通常のsql結合と条件を選択できます。 Spatial Selectsは、Spatial Indexを使用して物事を高速化する必要があります。

この場合、アプリは主にプレゼンテーションレイヤーになります。この場合、あなたにとって最も簡単なものは何でも使用してください。ブラウザベースの利点は、デフォルトではクロスプラットフォームのクライアントサーバーであることですが、これはあなたにとって重要ではないかもしれません。

レンダリング速度に関しては、マップをどのようにレンダリングするかに本当に依存します。がある 速度テスト Googleマップで利用できます。ただし、Googleマップタイプのインターフェイスを計画している場合は、 数千 ポイントはピンのぼかしに変わります。インターフェイスモックアップはありますか?

他のヒント

あるタイプのアプリと別のタイプのアプリで幸せになる場合は、そのタイプのアプリを書いてください。ブラウザアプリにするためだけに、ブラウザアプリを作成しないでください。

最初に、アプリのターゲット(およびそのサイズ、並行クライアントの数)を理解し、太ったクライアントまたはシン/ウェブが最適かどうかを判断する必要があります。次に、どの種類のアプリケーションが予測荷重を管理できるかを確認する必要があります。マスターしたりできるテクノロジーや時間枠で数千のデータポイントを表示していただけますか?マルチスレッドは、現在のマルチコアプロセッサを悪用して結果を達成するのに役立ちますか?どのテクノロジーを利用できますか?

少し古い帽子のように思えるかもしれませんが、ブラウザベースに行くことにした場合、ポイントを事前に画像にレンダリングして画像を表示することができますか?

WebSockets

HTML5をご覧ください WebSockets, 、それらはサーバー/ブラウザのデータ交換の新しい標準です。

WebSocketsは、WebブラウザーおよびWebサーバーに実装されるように設計された単一の送信制御プロトコル(TCP)ソケットを超えて、双方向の全二重通信チャネルを提供するテクノロジーです。

サーバーは、利用可能になったときに新しいデータをクライアントにプッシュし、クライアントプルリクエストのオーバーヘッドを削除できます。

ウィキペディアのページリスト 利用可能なサーバー側の実装, 、PHPバージョン(Delphiではなく)を含む。

WebSocketsはJavaScriptにバインドされていません websockets.orgページには言います:

さらに、Webソケットプロトコルを使用して、多様なクライアント(JavaScript、Adobe Flex、Javafx、Microsoft Silverlightなど)をサポートできます。ただし、HTML5仕様は、テキストベースのプロトコルに限定されたJavaScriptのサポートのみを定義します。他のクライアントタイプを提供し、バイナリプロトコルをサポートするには、外部の製品に目を向ける必要があります。

メッセージデータを交換できます JSON JavaScriptによってサポートされ、Delphiでも利用可能です(SuperObjectやLKJSONなどのオープンソースの実装として)。


ajax

ajax Delphiのベースのリッチインターネットアプリケーションは、intrawebまたは extpascal. extpascal オブジェクトパスカル(Delphi、Freepascal/Lazarus)ラッパー/バインディング Ext JS, 、完全なGUI Ajaxフレームワークと、すべてのメインWebブラウザーの透明なサポートを提供します:IE 6+、Firefox 1.5+、Safari 3+、Opera 9+、Chrome 2+は、クライアント側のプラットフォーム(PC、スマートフォン、iPhone、PDAなど)。オンラインデモアプリケーション: Fishfacts, もっと.

Ajax Push(別名 逆ajax / 彗星)オファー」HTTPサーバープッシュ「サーバー上のデータが変更されるたびに、サーバーからすべてのWebブラウザークライアントにデータを転送するデータ(XMLまたはJSON形式)の。クライアントは、関心のある情報に「サブスクライブ」できます。

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top