【问题标题】:Performance Issue with Doctrine, PostGIS and MapFishDoctrine、PostGIS 和 MapFish 的性能问题
【发布时间】:2011-09-02 11:51:05
【问题描述】:

我正在使用 Symfony 和 MapFish 插件 http://www.symfony-project.org/plugins/sfMapFishPlugin 开发一个 WebGIS 应用程序

我使用 MapFish 生成的 GeoJSON 通过 OpenLayers 渲染图层,当然是在矢量图层中。

当我显示多达 3k 个功能的图层时,一切正常。当我尝试使用具有 10k 或更多功能的图层时,应用程序会崩溃。我不知道阈值,因为我的层要么具有 2-3k 特征,要么具有 10-13k 特征。

我认为问题与教义有关,因为日志中的最后一个报告是这样的:

Sep 02 13:22:40 symfony [info] {Doctrine_Connection_Statement} execute :

然后查询获取地理记录。

我说我认为问题在于功能的数量。因此,我使用 OpenLayers.Strategy.BBox() 来减少要获取和显示的功能数量。结果是一样的。执行查询时应用似乎卡住了。

如果我对用于获取功能 GeoJSON 的查询字符串添加限制,则应用程序可以正常工作。所以我认为这与 MapFish 插件无关,而是与 Doctrine 相关。

谁有启示? 谢谢!

【问题讨论】:

  • 我刚刚尝试了一个超级缩放比例并且......惊喜!显示功能!这很酷,因为我可以处理我的应用程序,但是当需要加载超过 3k 条记录时,这并不能解决性能问题。我错过了什么吗?

标签: performance symfony1 doctrine openlayers postgis


【解决方案1】:

即使理论上可行,尝试在地图上显示如此多的矢量特征也是一个坏主意。 您最好更改要素的显示方式(例如,低缩放级别的栅格、点击获取要素……)。

即使你的服务在合理的时间内回复,你的浏览器也会卡住,或者至少性能很差…… 我是 sfMapFishPlugin 的作者,我从来没有尝试过查询这么多的特征,更没有尝试在 OL 地图上显示它们。

查看有关此主题的 OpenLayers 常见问题解答:http://trac.osgeo.org/openlayers/wiki/FrequentlyAskedQuestions#WhatisthemaximumnumberofCoordinatesFeaturesIcandrawwithaVectorlayer,与最近的浏览器改进相比有些过时,但地图上的 10k 矢量特征不合理

HTH,

【讨论】:

  • 谢谢!我同意你的看法,展示这么多功能是不可想象的。无论如何,我对教义表现的怀疑仍然存在......
  • 您可以尝试使用 curl 调用您的服务,使用 limit 参数,看看是否存在真正的问题。或者在 postgres 中使用explain analyse 来查找瓶颈。
猜你喜欢
  • 2012-07-21
  • 1970-01-01
  • 1970-01-01
  • 2012-05-22
  • 1970-01-01
  • 2021-08-04
  • 1970-01-01
  • 1970-01-01
  • 2020-06-23
相关资源
最近更新 更多