Doctrine,PostGIS和MapFish的性能问题

时间:2011-09-02 11:51:05

标签: performance symfony1 doctrine openlayers postgis

我正在使用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有关。

任何人都有一些启示? 谢谢!

1 个答案:

答案 0 :(得分:0)

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

即使您的服务在合理的时间内回答,您的浏览器也会被卡住,或者至少会有非常糟糕的表现...... 我是sfMapFishPlugin的作者,我从来没有试过查询这么多的功能,甚至更少尝试在OL地图上显示它们。

查看关于此主题的OpenLayers常见问题解答:http://trac.osgeo.org/openlayers/wiki/FrequentlyAskedQuestions#WhatisthemaximumnumberofCoordinatesFeaturesIcandrawwithaVectorlayer,对最近的浏览器改进有点过时,但地图上的10k矢量要素并非合理。

HTH,