[Spanish] Problema con GetFeatureInfo. Muy lento al consultar
mediante VirtualSpatialData
Emilio Gómez Fernández
egofer at terra.es
Wed Dec 9 06:30:51 EST 2009
Hola a todos,
A ver si alguien me puede arrojar algo de luz al problema que me ocupa
estos últimos días.
Tengo montado un servidor cartográfico mediante Mapserver + Openlayers +
Geoext. De momento todo funciona bien, el problema que tengo es que
cuando hago un GetFeatureInfo a la base de datos Mapserver me tarda
demasiado (unos 20-25 segundos) en devolver la información de los
elementos (en total no se muestran más de 15 elementos en el mapa
distribuidos en 7 capa sconsultables). La url sería la siguiente:
http://localhost/cgi-bin/mapserv.exe?map=../htdocs/mapa.map&&service=WMS&version=1.1.0&request=GetFeatureInfo&layers=actividad0,actividad1,actividad2,actividad3,actividad4,actividad5,actividad6&query_layers=actividad0,actividad1,actividad2,actividad3,actividad4,actividad5,actividad6&styles=,,,,,,&bbox=-16.795006%2C28.065467%2C-16.656303%2C28.130885&srs=EPSG%3A4326&feature_count=10&x=370&y=322&height=432&width=808&info_format=text%2Fhtml
Comentar que consulto a una base de datos SQL Server 2005 mediante ODBC
a través de VirtualSpatialData OGR, ya que aquella contiene datos
geográficos no explícitos. La configuración de los parámetros del
OGRVRTDataSource es la siguiente para cada capa (únicamente cambia la
SQL mínimamente):
<OGRVRTDataSource>
<OGRVRTLayer name='actividad6'>
<SrcDataSource>ODBC:@AdejeDB</SrcDataSource>
<SrcSQL>SELECT e.matricula AS matricula, t.longitud AS longitud,
t.latitud AS latitud, e.id_equipo AS id_equipo, e.denominacion AS
denominacion, t.fecha_hora_ultima_posicion AS hora_posicion,
t.fecha_hora_salida_parque AS hora_salida FROM (SELECT * FROM
posiciones_gps_tr AS p WHERE p.grupo_actividad=6 AND p.obsoleta=0) AS t,
equipos AS e WHERE e.id_ayuntamiento=1 AND t.oid_equipo=e.oid ORDER BY
t.OID_equipo</SrcSQL>
<FID>id_equipo</FID>
<GeometryType>wkbPoint</GeometryType>
<LayerSRS>WGS84</LayerSRS>
<GeometryField encoding='PointFromColumns' x='longitud'
y='latitud'/>
</OGRVRTLayer>
</OGRVRTDataSource>
Tanto la base de datos SQL Server como la versión de Mapserver (v.
4.10.2) me vienen dados por lo que ahí no puedo tocar nada. Vengo
dándole vueltas y no encuentro la forma de acelerar la query. Probando
las SQL en la base de datos no tardan casi nada, porque se ejecutan
sobre tablas con pocos registros. Pienso que pueda ser al conectar a la
BD mediante ODBC+OGR, porque testeando el archivo Virtual Data con
ogrinfo en consola tarda unos 3 seg. por capa en devolver resultados
(3x7=21 seg.).
Indiscutiblemente accediendo a través de OGR tiene que ser más lento
pero no se si esto es normal y si hay alguna forma de acelerarlo. A ver
si alguien puede echarme un mano.
Saludos.
Emilio Gómez Fernández
More information about the Spanish
mailing list