我想实时跟踪几百个,也许几千个人。
假设硬件方面已整理好,我可以将数据存入数据库。
现在,我想把它拿出来并实时显示。
Weeeell ......“真实”的时间。假设我想绘制一个建筑物的平面图并每隔1到5秒对所有人进行绘图。
(我可能只想点击一个按钮就会显示某些“种类”的人;我需要数据挖掘等,但让我们坚持使用更糟糕的情况)。
我对PHP很满意,但不是这种事情。我个人会对使用Delphi编写的Windows应用程序感到高兴,但趋势似乎是使所有浏览器都基于。
所以,问题是,我猜是浏览器是否可以处理这个问题以及基于Windows或基于浏览器的解决方案是否存在令人信服的论据。
如果基于浏览器可以处理这个(每秒显示几千个数据点),并且没有压倒性的窗口参数,那么我想我会选择基于浏览器并学习一些新的技巧。显而易见的优点是我还可以在Google地图上重复使用我的大部分代码进行(车辆)跟踪。
答案 0 :(得分:3)
您的大多数工作可能都是在您的空间启用的关系数据库中完成的。例如,PostGIS可以选择边界框内的数据点或更复杂的空间谓词(ST_Contains,ST_Crosses,ST_Intersects,ST_Touches,...)以及常用的SQL连接和WHERE条件。空间选择应使用空间索引来加快速度。
如果是这种情况,您的应用程序将主要是一个表示层。在这种情况下,使用最简单的方法。基于浏览器的优点是默认情况下它是跨平台的客户端 - 服务器,但这对您来说无关紧要。
关于渲染速度,它实际上取决于您计划渲染地图的方式。 Google地图可以speed tests。但是,我怀疑,如果你计划在谷歌地图类型界面数千点将变成模糊的针脚。你有接口样机吗?
答案 1 :(得分:1)
如果您对某种类型的应用程序与其他类型的应用程序感到满意,那么请编写该类型的应用程序。不要将浏览器应用程序设为浏览器应用程序。
答案 2 :(得分:1)
首先,您应该了解您的应用程序的目标(及其大小,并发客户端数量?),然后确定胖客户端或瘦/ Web服务器是否最适合它。然后,您应该检查哪种应用程序能够管理您预测的负载。您可以使用您掌握的技术或在您的时间范围内每秒显示几千个数据点吗?多线程会帮助您利用当前的多核处理器来实现您的结果吗?哪种技术可以让你利用它?
答案 3 :(得分:1)
也许看起来有点旧帽子,但是如果你决定去浏览器,你可以预先渲染图像并只显示图像吗?
答案 4 :(得分:1)
看看HTML5 WebSockets,它们是服务器/浏览器数据交换的新标准:
WebSockets是一项技术提供 用于双向,全双工 通讯渠道,一个单一 传输控制协议(TCP) 套接字,旨在实现 网络浏览器和网络服务器。
服务器可以在新数据可用时将新数据推送到客户端,从而消除了客户端请求的开销。
Wikipedia页面列出available server-side implementations,包括PHP版本(但不包括Delphi)。
WebSockets未绑定到JavaScript,websockets.org page says:
另外,Web Socket协议 可用于支持多样化的集合 客户(例如JavaScript,Adobe Flex,JavaFX,Microsoft Silverlight, 等等。)。但是,HTML5 规范仅定义支持 JavaScript,仅限于 基于文本的协议。为其他人服务 客户端类型和支持二进制文件 你需要寻找的协议 外部产品。
消息数据可以JSON格式交换,JavaScript支持,也可以用于Delphi(作为SuperObject或lkJSON等开源实现)。
ExtPascal的Delphi富Internet应用程序。 ExtPascal 是Ext JS的Object Pascal(Delphi,FreePascal / Lazarus)包装器/绑定,是一个完整的GUI Ajax框架,并为所有主要Web浏览器提供透明支持:IE 6 +,Firefox 1.5任何客户端平台(PC,SmartPhone,iPhone,PDA等)上都有+,Safari 3 +,Opera 9+和Chrome 2+。在线演示应用程序:FishFacts,more。
Ajax Push(又名Reverse Ajax / Comet)提供“HTTP server push”数据(XML或JSON格式),每当数据将数据从服务器传输到所有连接的Web浏览器客户端在服务器上更改。客户可以“订阅”他们感兴趣的信息。