Estimados:
Lo he logrado resolver pero no de la manera que deseaba, es decir sigue
siendo una manera no demasiado óptima de resolverlo.
dejo parte del mapfile para que vean como lo resolví:
LAYER
NAME 'zonas_salud'
TYPE LINE
STATUS ON
TRANSPARENCY 100
TEMPLATE void
#DATA 'rutasprincipales_ln.shp'
CONNECTIONTYPE postgis
CONNECTION "dbname='*****' host=******* port='5432' user='*****'
password='*****'"
DATA 'the_geom from "rutasprincipales_ln" USING UNIQUE gid USING srid=-1 '
TYPE LINE
#FILTER "'descriptor' = '*'"
DUMP true
TOLERANCE 3
TOLERANCEUNITS pixels
SIZEUNITS pixels
PROJECTION
"proj=utm"
"zone=21"
"south"
"ellps=WGS84"
"datum=WGS84"
"units=m"
"no_defs"USING srid=-1
END # end projection
METADATA
"DESCRIPTION" "RUTAS PRELIMINAR"
"RESULT_FIELDS" "NOMBRE"
"RESULT_HEADERS" "NOMBRE TEC"
"RESULT_HYPERLINK" "ID"
"LAYER_ENCODING" "UTF-8"
"CATEGORY" "cat_admin"
# "ows_title" "calles"
END # Metadata
LABELITEM "NOMBRE"
LABELCACHE ON
LABELMAXSCALEDENOM 900000
CLASSITEM "DESCRIPTOR"
CLASS
NAME 'Rutas'
EXPRESSION 'Ruta Terciaria'
STYLE
WIDTH 0.91
COLOR 21 255 51
END
LABEL
ENCODING "UTF-8"
POSITION lc
ANGLE AUTO
MINDISTANCE 300
COLOR 0 150 150
#BACKGROUNDCOLOR 255 255 128
#BACKGROUNDSHADOWCOLOR 150 150 150
#BACKGROUNDSHADOWSIZE 2 2
BUFFER 1
SIZE small
END #Label
END #end class
END # end layer
2011/5/25 Eduardo Bieñkowski <[email protected]>
> Cristian y Listeros:
>
> He intentado como tu dices pero a pesar de abrirme el mapa no me muestra
> esa la capa seleccionada y me vuelve e a enviar el mismo mensaje que ya no
> es de SQL sino de parseo de un XML y no se de que se trata.
>
> [25-May-2011 14:19:54] PHP Warning: DOMDocument::schemaValidate() [<a
> href='domdocument.schemavalidate'>domdocument.schemavalidate</a>]: Element
> 'pmapper': No matching global declaration available for the validation root.
> in /var/www/pmapper-4.0/incphp/query/search.php on line 69
> [25-May-2011 14:19:54] Validation of search.xml file FAILED:
> <br />
> <b>Warning</b>: DOMDocument::schemaValidate() [<a
> href='domdocument.schemavalidate'>domdocument.schemavalidate</a>]: Element
> 'pmapper': No matching global declaration available for the validation root.
> in <b>/var/www/pmapper-4.0/incphp/query/search.php</b> on line <b>69</b><br
> />
>
> En cuanto al caso que me pasaste en el link no es el error que me pasa a
> mi, es decir no es un tema de la columna de la tabla, hay algun caracter que
> no se reconoce o demas que implica que no se este construyendo de forma
> correcta alguno de los XML.
> De todas maneras yo quiero resolverlo con un SQL y no utilizando el FILTER.
> Ya que es una base de una cantidad importante de registros y estaria
> seleccionandolos todos para luego filtrarlos y no al revés es decir
> filtrarlos y seleccionarlos.
> Desde el punto de los tiempos y de la optimización de la consulta lo
> segundo sería lo mejor.
> Gracias
>
> Saludos
> Eduardo
>
>
> El 25 de mayo de 2011 13:47, Cristian Olguín Avila <
> [email protected]> escribió:
>
> estimado..
>>
>> pruebe a cambiar el campo DESCRIPTOR a minuscula en su base de datos,
>> si no puede porque se usa en otro lugar,
>> pruebe con
>> DATA 'the_geom from rutasprincipales_ln USING UNIQUE gid USING srid=-1'
>> TYPE LINE
>> FILTER \"DESCRIPTOR\" = 'Terciaria'"
>>
>>
>> dado que si es string el valor Terciaria debe ir entre comillas simples, y
>> el problema de usar columnas con nombre en mayusculas es que sin las
>> comillas dobles la consulta no funciona
>>
>> si esa linea no funciona pruebe alguna combinacion como 2 comillas dobles
>> o algo de modo que cuando interprete el phpmapscript, genere una línea que
>> si acepte la base de datos.
>> saludos
>>
>> Cristian O.
>> www.digitalbee.cl
>>
>>
>> 2011/5/25 Eduardo Bieñkowski <[email protected]>
>>
>>> Ahora intente hacerlo de esta manera
>>>
>>> DATA 'the_geom from rutasprincipales_ln USING UNIQUE gid USING srid=-1'
>>> TYPE LINE
>>> FILTER "'descriptor' = 'Terciaria'"
>>>
>>> y se despliega el mapa, pero ninguna de las capas que solicite en el SQL
>>> y
>>> en el php_error.log me despliega
>>>
>>> [25-May-2011 13:32:55] PHP Warning: DOMDocument::schemaValidate() [<a
>>> href='domdocument.schemavalidate'>domdocument.schemavalidate</a>]:
>>> Element
>>> 'pmapper': No matching global declaration available for the validation
>>> root.
>>> in /var/www/pmapper-4.0/incphp/query/search.php on line 69
>>> [25-May-2011 13:32:55] Validation of search.xml file FAILED:
>>> <br />
>>> <b>Warning</b>: DOMDocument::schemaValidate() [<a
>>> href='domdocument.schemavalidate'>domdocument.schemavalidate</a>]:
>>> Element
>>> 'pmapper': No matching global declaration available for the validation
>>> root.
>>> in <b>/var/www/pmapper-4.0/incphp/query/search.php</b> on line
>>> <b>69</b><br
>>> />
>>>
>>> Cuestión que ahora si que estoy desorientado.
>>> Saludos
>>> EB
>>>
>>>
>>>
>>> 2011/5/25 Eduardo Bieñkowski <[email protected]>
>>>
>>> > Ya probé con lo que sugirió Francisco y me largo el error de parseo
>>> > siguiente:
>>> >
>>> > *Warning*: [MapServer Error]: loadLayer(): Parsing error near
>>> > (Terciaria):(line 343) in */var/www/pmapper-4.0/incphp/globals.php* on
>>> > line *60*
>>> > Además de que no aparece la interrfaz gráfica.
>>> >
>>> > Lo que hice fue ponerle comillas a DESCRIPTOR y sacarle las comillas
>>> > simples a Terciaria.
>>> > De esta manera abre la interfaz gráfica pero no se visualiza el mapa,
>>> al
>>> > leer el php_error.log me sale este mensaje
>>> >
>>> > [25-May-2011 11:06:35] PHP Warning: [MapServer Error]: msDrawMap():
>>> Failed
>>> > to draw layer named 'zonas_salud'.
>>> > in /var/www/pmapper-4.0/incphp/map/map.php on line 326
>>> > [25-May-2011 11:06:35] PHP Warning: [MapServer Error]:
>>> > msPostGISLayerWhichShapes(): Error (ERROR: error de sintaxis en o
>>> cerca de
>>> > «Terciaria»
>>> > LINE 1: ... FROM zonas_salud WHERE "DESCRIPTOR"=Terciaria)...
>>> > ^
>>> > ) executing query: select
>>> >
>>> "NOMBRE",encode(AsBinary(force_collection(force_2d("the_geom")),'NDR'),'hex')
>>> > as geom,"gid" from (SELECT * FROM zonas_salud WHERE
>>> "DESCRIPTOR"=Terciaria)
>>> > AS subquery where the_geom && GeomFromText('POLYGON((-169466
>>> > 5995586.35980861,-169466 6789793.64019139,1417430
>>> 6789793.64019139,1417430
>>> > 5995586.35980861,-169466 5995586.35980861))',-1)
>>> > in /var/www/pmapper-4.0/incphp/map/map.php on line 326
>>> >
>>> > Como escribi en el anterior correo creo que es un tema con los campos
>>> CHAR
>>> > cuyos valores son TEXTO.
>>> > Si pruebo con otros campos que sean NUMERIC funciona, el tema que los
>>> tengo
>>> > que filtrar si o si por el campo DESCRIPTOR para no tocar toda la base
>>> > postgres.
>>> > Entonces creo que lo que pasa es que cuando PMAPPER parsea el MAPFILE
>>> no
>>> > encuentra algun caracter especial para validar campos texto.
>>> > Saludos
>>> > Eduardo
>>> >
>>> >
>>> >
>>> >
>>> >
>>> >
>>> > 2011/5/24 [email protected] <[email protected]>
>>> >
>>> > Yo haría para tus datos lo siguiente:
>>> >>
>>> >> DATA 'the_geom from (SELECT * FROM zonas_salud WHERE
>>> >> DESCRIPTOR='Terciaria') AS subquery USING UNIQUE gid USING srid=23030'
>>> >>
>>> >> si lo que quieres es seleccionar las entidades que tengan exactamente
>>> >> esa palabra, sino sería LIKE '%Terciaria%' con comodines (también
>>> suelo
>>> >> definir el srid)
>>> >>
>>> >> Un saludo
>>> >>
>>> >> El 24/05/2011 15:56, Eduardo Bieñkowski escribió:
>>> >> > Tengo una consuita para realizar respecto de una SQL en la que
>>> quiero
>>> >> > recuperar datos según un campo de texto.
>>> >> > He utilizado LIKE no funciona
>>> >> > DATA 'the_geom from (SELECT * FROM zonas_salud WHERE "DESCRIPTOR"
>>> LIKE
>>> >> > 'Terciaria') AS zonas USING UNIQUE gid'
>>> >> > asi tampoco
>>> >> > DATA 'the_geom from (SELECT * FROM zonas_salud WHERE "DESCRIPTOR"
>>> LIKE
>>> >> > "Terciaria") AS zonas USING UNIQUE gid'
>>> >> >
>>> >> > He utilizado el signo de = con comillas simples no funciona,
>>> >> > DATA 'the_geom from (SELECT * FROM zonas_salud WHERE "DESCRIPTOR"
>>> >> > ='Terciaria') AS zonas USING UNIQUE gid'
>>> >> >
>>> >> > He utilizado el signo de = con comillas dobles tampoco
>>> >> > DATA 'the_geom from (SELECT * FROM zonas_salud WHERE "DESCRIPTOR"
>>> >> > ='"Terciaria") AS zonas USING UNIQUE gid'
>>> >> >
>>> >> > Sin nada tampoco funciona
>>> >> > DATA 'the_geom from (SELECT * FROM zonas_salud WHERE "DESCRIPTOR"
>>> LIKE
>>> >> Ruta
>>> >> > Terciaria) AS zonas USING UNIQUE gid'
>>> >> > DATA 'the_geom from (SELECT * FROM zonas_salud WHERE "DESCRIPTOR"
>>> >> > =Terciaria) AS zonas USING UNIQUE gid'
>>> >> >
>>> >> > Los errores que me salen son del tipo:
>>> >> > [24-May-2011 10:54:19] PHP Warning: [MapServer Error]: msDrawMap():
>>> >> Failed
>>> >> > to draw layer named 'zonas_salud'.
>>> >> > in /var/www/pmapper-4.0/incphp/globals.php on line 60
>>> >> > [24-May-2011 10:54:19] PHP Warning: [MapServer Error]:
>>> >> > msPostGISLayerWhichShapes(): Error (ERROR: error de sintaxis en o
>>> cerca
>>> >> de
>>> >> > «Terciaria»
>>> >> > LINE 1: ...ROM zonas_salud WHERE "DESCRIPTOR" = Terciaria)...
>>> >> >
>>> >> >
>>> >> >
>>> >> >
>>> >> > Sin embargo si lo hago con PSQL pasando el SELECT * FROM zonas_salud
>>> >> WHERE
>>> >> > "DESCRIPTOR" ='Terciaria'
>>> >> > ESTO SI FUNCIONA
>>> >> >
>>> >>
>>> >>
>>> >>
>>> >>
>>> ------------------------------------------------------------------------------
>>> >> vRanger cuts backup time in half-while increasing security.
>>> >> With the market-leading solution for virtual backup and recovery,
>>> >> you get blazing-fast, flexible, and affordable data protection.
>>> >> Download your free trial now.
>>> >> http://p.sf.net/sfu/quest-d2dcopy1
>>> >> _______________________________________________
>>> >> pmapper-users mailing list
>>> >> [email protected]
>>> >> https://lists.sourceforge.net/lists/listinfo/pmapper-users
>>> >>
>>> >
>>> >
>>> >
>>> > --
>>> > Edu
>>> >
>>>
>>>
>>>
>>> --
>>> Edu
>>>
>>> ------------------------------------------------------------------------------
>>> vRanger cuts backup time in half-while increasing security.
>>> With the market-leading solution for virtual backup and recovery,
>>> you get blazing-fast, flexible, and affordable data protection.
>>> Download your free trial now.
>>> http://p.sf.net/sfu/quest-d2dcopy1
>>> _______________________________________________
>>> pmapper-users mailing list
>>> [email protected]
>>> https://lists.sourceforge.net/lists/listinfo/pmapper-users
>>>
>>
>>
>
>
> --
> Edu
>
--
Edu
------------------------------------------------------------------------------
vRanger cuts backup time in half-while increasing security.
With the market-leading solution for virtual backup and recovery,
you get blazing-fast, flexible, and affordable data protection.
Download your free trial now.
http://p.sf.net/sfu/quest-d2dcopy1
_______________________________________________
pmapper-users mailing list
[email protected]
https://lists.sourceforge.net/lists/listinfo/pmapper-users