<html>
<head>
<style><!--
.hmmessage P
{
margin:0px;
padding:0px
}
body.hmmessage
{
font-size: 10pt;
font-family:Tahoma
}
--></style>
</head>
<body class='hmmessage'><div dir='ltr'>
Bueno, al fin resolvimos el problema (algo del 10% Jorge) y compartimos la solución. Muchas gracias por la ayuda Jorge.<BR>
<BR>
El tema planteado era el siguiente:<BR>
...<BR>
<FONT color=#4f81bd>Estoy armando un visualizador web de mapas con OpenLayer.<BR>> > EN el visualizador muestro capas WMS con su estilo (del servidor WMS de la<BR>> > IDE de Santa FE), y quiero agregar capas propias en formato GML.<BR>> > Una de mis capas GML es "centros de salud", de puntos. Uno de los atributos<BR>> > de los centros de salud es dependencia, con valores "privado" o "publico".<BR>> > Quiero asignar símbolo distinto (imagen png) segun la dependencia sea<BR>> > "privado" o "publico".<BR>> > ¿Cómo hago cargando la capa solo una vez?<BR></FONT><BR>
...<BR>
<STRONG><FONT style="FONT-SIZE: 12pt" size=3>La solución dada por Carlos Podestá </FONT></STRONG>(<A href="mailto:webfe@hotmail.com">webfe@hotmail.com</A>)<BR>
<BR>
////////////////// PARA VARIAR LA SIMBOLOGIA DE UN GML SEGUN UN ATRIBUTO<BR>////---------------------------------------------------------------------------------------------<BR> //// Autir: Carlos Podestá<BR>
<BR>var aStyleMap = new OpenLayers.StyleMap({fillColor: 'yellow', <BR>fillOpacity: 0.3, strokeWidth: 1.0, strokeColor:'yellow', pointRadius: 10 });<BR> <BR>/// EL símbolo varía segun DEPENDENCIA (atributo del GML)<BR>
var lookup = {};<BR>lookup['Provincial'] = {fillOpacity: 1, pointRadius: 10, externalGraphic: "imagenes/efector-publico.png"};<BR>lookup['Privado'] = {fillOpacity: 1, pointRadius: 10, externalGraphic: "imagenes/efector-privado.png"};<BR> <BR> <BR>aStyleMap.addUniqueValueRules("default", "dependecia", lookup);<BR> <BR>var gmlLayer = new OpenLayers.Layer.GML("Efectores <BR>Publicos", "gml/efectores.gml", {styleMap : aStyleMap});<BR> <BR>map.addLayers([wms, gmlLayer]);<BR> <BR> <BR> if (!map.getCenter()) map.zoomToMaxExtent();<BR> <BR>map.setCenter(new OpenLayers.LonLat(longitud,latitud), 3);<BR>}<BR>----------------------------------------------------------<BR><BR>
Saludos a todos.<BR>
<BR> <BR>
<DIV>
> From: jsanz@osgeo.org<BR>> Date: Sun, 26 Jun 2011 09:07:08 +0200<BR>> Subject: Re: [Spanish] OpenLayer - simbologia segun atributo en GML<BR>> To: spanish@lists.osgeo.org<BR>> <BR>> 2011/6/26 Marta Lidia Stiefel <mstiefel@hotmail.com>:<BR>> > Muchas gracias Jorge,<BR>> > lamentablemente no me sirve. No puedo adaptarlo para usar con un archivo<BR>> > GML; en el ejemplo el vectorial se crea y no se carga desde un archivo.<BR>> > Si hay alguna otra mano, se agradecerá.<BR>> ><BR>> <BR>> Sí te sirve. Los estilos aplican a cualquier capa vectorial. Mira la<BR>> API de la clase Layers.Vector<BR>> <BR>> http://dev.openlayers.org/releases/OpenLayers-2.10/doc/apidocs/files/OpenLayers/Layer/Vector-js.html<BR>> <BR>> Si lo que quieres decir es que no tienes claro como cargar una capa<BR>> vectorial GML entonces es otra cosa que puedes encontrar en el<BR>> servidor de ejemplos que recomiendo tener siempre a mano a cualquiera<BR>> que quiera hacer algo con OL.<BR>> <BR>> http://openlayers.org/dev/examples/gml-layer.html<BR>> <BR>> Es decir no hay nada que adaptar, creas tu "stylemap" y luego se lo<BR>> pasas a la capa vectorial como uno de sus atributos como se hace en el<BR>> primer ejemplo que te pasé.<BR>> <BR>> En general la documentación de OL es realmente buena, con los ejemplos<BR>> y la API hay un 90% de lo necesario a mano, el otro 10% es irse<BR>> directamente al código fuente ya que algunas propiedades no están<BR>> documentadas en la API y otras veces quieres saber exactamente que<BR>> está pasando por ahí dentro.<BR>> <BR>> [5 minutos después]<BR>> <BR>> Me había entrado una duda y efectivamente este es un caso del 10%<BR>> porque en el API de la clase Vector está el atributo "style" pero no<BR>> "stylemap", aunque si vas al código, efectivamente es una propiedad<BR>> que puedes establecer.<BR>> <BR>> http://trac.osgeo.org/openlayers/browser/trunk/openlayers/lib/OpenLayers/Layer/Vector.js<BR>> (línea 170+-)<BR>> <BR>> <BR>> Saludos<BR>> <BR>> -- <BR>> Jorge Sanz<BR>> http://es.osgeo.org<BR>> _______________________________________________<BR>> Spanish mailing list<BR>> http://lists.osgeo.org/mailman/listinfo/spanish<BR>> http://es.osgeo.org<BR>> http://twitter.com/osgeoes<BR></DIV>                                            </div></body>
</html>