我想实时跟踪几百,也许几千人。

假设硬件方面已经整理好了,我可以将数据输入数据库中。

现在,我想实时拿出它并展示它。

Weeeell ...“实现”时间。假设我想画一个建筑物的平面图,并每1到5秒绘制每个人。

(我可能只想在单击按钮时只显示某些“类型”;我需要数据固定等,但让我们坚持更糟糕的情况)。

我对PHP很满意,尽管不是这种事情。我个人对在Delphi中编码的Windows应用程序会更加满意,但是趋势似乎是为了使所有内容都基于浏览器。

因此,我想问题是浏览器是否可以处理此问题,以及对于基于Windows或基于浏览器的解决方案是否有令人信服的论点。

如果基于浏览器可以处理此操作(每秒显示几千个数据点),并且对Windows没有压倒性的论点,那么我想我会选择基于浏览器并学习一些新技巧。显而易见的优势是,我还可以在Google Maps上重新使用(车辆)跟踪的大部分代码。

有帮助吗?

解决方案

您的大部分工作可能会在您的空间启用关系数据库中完成。例如,PostGIS可以在边界框中选择数据点或更复杂的空间谓词(st_contains,st_crosses,st_intersects,st_touches,...)以及通常的SQL连接和条件。空间选择应使用空间索引来加快速度。

如果是这种情况,那么您的应用将在很大程度上是一个演示层。在这种情况下,请使用最简单的东西。基于浏览器的优点是默认情况下它是跨平台客户端服务器,但这对您来说可能并不重要。

关于渲染速度,这实际上取决于您计划如何渲染地图。有 速度测试 可用于Google Maps。但是,我怀疑如果您打算在Google Maps类型接口上 几千 要点将变成销钉的模糊。您有接口模型吗?

其他提示

如果您对一种类型的应用程序与另一种应用程序更快乐,请编写该类型的应用程序。不要将某些内容制作为浏览器应用程序只是为了使其成为浏览器应用程序。

首先,您应该了解应用程序的目标是什么(及其大小,多少并发客户?),然后决定胖客户端或薄/网络最适合它。然后,您应该检查哪种应用程序能够管理您的预测负载。您能否通过您在时间表中掌握的技术或可以使用的技术显示几千个数据点?多线程是否会帮助您利用当前的多核算处理器来实现您的结果?哪种技术会让您利用它?

也许似乎有点旧帽子,但是如果您决定基于浏览器进行浏览,则可以将点渲染到图像并显示图像?

Websocket

看看HTML5 Websocket, ,它们是服务器/浏览器数据交换的新标准:

WebSockets是一项技术,可在单个传输控制协议(TCP)插座上提供双向,全双工通信渠道,旨在在Web浏览器和Web服务器中实现。

服务器可用时可以将新数据推向客户端,从而删除了客户端拉请求的开销。

Wikipedia页面列表 可用的服务器端实现, ,包括PHP版本(但不包括Delphi)。

WebSocket不受JavaScript的约束 WebSockets.org页面说:

此外,Web套接字协议可用于支持一组不同的客户端(例如JavaScript,Adobe Flex,Javafx,Microsoft Silverlight等)。但是,HTML5规范仅定义对JavaScript的支持,该支持仅限于基于文本的协议。为了服务其他客户型类型并支持二进制协议,您需要寻找外部产品。

消息数据可以在 JSON 格式,由JavaScript支持,也可用于Delphi(作为SuperObject或LKJSON等开源实现)。


阿贾克斯

阿贾克斯 可以使用Intraweb或 Extpascal. Extpascal 是帕斯卡(Delphi,freepascal/lazarus)的物体包装器/绑定 Ext JS, ,一个完整的GUI AJAX框架,并为所有主要网络浏览器提供透明的支持:I 6+,Firefox 1.5+,Safari 3+,Opera 9+和Chrome 2+在任何客户端平台上(PC,智能手机,iPhone,PDA等) )。在线演示应用程序: 鱼肉, 更多的.

ajax推动(又名 反向ajax / 彗星)优惠”HTTP服务器推“数据(以XML或JSON格式为XML),该数据在服务器上的数据更改时将数据从服务器传输到所有连接的Web浏览器客户端。客户端可以“订阅”他们感兴趣的信息。

许可以下: CC-BY-SA归因
不隶属于 StackOverflow
scroll top