Gwe*_*ael 5 delphi multithreading google-maps twebbrowser
实际上我通过在我的TWebBrowser中使用index.html(使用谷歌地图显示和处理点)显示它来实际显示每2秒许多实时GPS点数(20),并且它减慢了很多我的应用程序.
因为我在同一个应用程序下有另一个模块允许我在我的数据库中输入数据,它通常会冻结我的应用程序.
我知道线程是为此而制作的,但我不确定它能解决我的问题.有任何想法吗 ???
谢谢Gwenael
PS:我从外部文件(而不是我的delphi应用程序中的源代码loadead)加载我的javascript代码,这可以减慢我的应用程序吗?
如果你从外部文件获取 JavaScript,它将被缓存,所以不,这可能不会减慢你的速度,除了第一次。
速度缓慢的可能原因以及加快速度的建议:
TWebBrowser 封装了Internet Explorer,在执行此类任务时,Internet Explorer 并不以其原始速度而闻名;如果您想要快速处理 JavaScript,请考虑 DelphiChromiumEmbedded
如果您每两秒绘制一个标记,则一小时车程中您将需要绘制 1800 个标记。如果您想显示多次旅行,那么绘制所有带有 alpha 透明度的图标将是一项艰巨的任务。
我通常每 2 分钟绘制一个标记(带有行驶方向的箭头) ,或者如果自上次标记以来已行驶超过200m 。这样,当汽车静止时,您就不必绘制一大堆标记。
您可以使用douglas-peucker算法来简化该线路。作为参数,您将给出在线中允许的最大误差,并且它将在不超过该误差的情况下删除尽可能多的点。因此,当你有一条直线时,它会删除边缘之间的所有点。
此外,您还可以考虑在某些缩放级别上对点进行聚类。如果您使用 OpenLayers,则会更容易,但在Google Maps Util Library的帮助下,您可以使用 Google Maps 执行相同的操作(示例)。如果缩小的话,在 10x10 像素的区域上绘制 2000 个重叠的图标就有点没用了。
如果您向我展示您的代码,我可以为您提供一些关于如何加快速度的更直接的建议。
| 归档时间: |
|
| 查看次数: |
1166 次 |
| 最近记录: |