<?xml version="1.0" encoding="UTF-8"?><rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
	>

<channel>
	<title>Trucos &#8211; Alejandro Franco</title>
	<atom:link href="https://jafrancov.com/tag/trucos/feed/" rel="self" type="application/rss+xml" />
	<link>https://jafrancov.com</link>
	<description>Python, Django y lo que nadie explica en los tutoriales</description>
	<lastBuildDate>Thu, 01 Aug 2013 20:15:00 +0000</lastBuildDate>
	<language>es</language>
	<sy:updatePeriod>
	hourly	</sy:updatePeriod>
	<sy:updateFrequency>
	1	</sy:updateFrequency>
	<generator>https://wordpress.org/?v=6.9.4</generator>
<site xmlns="com-wordpress:feed-additions:1">14205669</site>	<item>
		<title>Mostrar sólo un InfoWindow y cerrarlo automáticamente GMaps API v3</title>
		<link>https://jafrancov.com/2010/09/single-infowindow/</link>
					<comments>https://jafrancov.com/2010/09/single-infowindow/#comments</comments>
		
		<dc:creator><![CDATA[Alex Franco]]></dc:creator>
		<pubDate>Sat, 11 Sep 2010 09:37:36 +0000</pubDate>
				<category><![CDATA[Codigo]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[GMaps]]></category>
		<category><![CDATA[InfoWindow]]></category>
		<category><![CDATA[Marcadores]]></category>
		<category><![CDATA[Marker]]></category>
		<category><![CDATA[Trucos]]></category>
		<guid isPermaLink="false">http://jafrancov.com/?p=1899</guid>

					<description><![CDATA[Si no tienes mucha experiencia o tienes dudas con respecto a algo que usemos en este post, puedes consultar los demás ejemplos que se han realizado anteriormente aquí. En algunas ocasiones existe la necesidad de tener varios marcadores dentro de un mapa, cada uno de ellos con un Listener que está a la espera de ... <a title="Mostrar sólo un InfoWindow y cerrarlo automáticamente GMaps API v3" class="read-more" href="https://jafrancov.com/2010/09/single-infowindow/" aria-label="Leer más sobre Mostrar sólo un InfoWindow y cerrarlo automáticamente GMaps API v3">Leer más</a>]]></description>
										<content:encoded><![CDATA[<p>Si no tienes mucha experiencia o tienes dudas con respecto a algo que usemos en este post, <a href="http://jafrancov.com/tag/gmaps+api/">puedes consultar los demás ejemplos que se han realizado anteriormente aquí</a>.</p>
<p>En algunas ocasiones existe la necesidad de tener varios marcadores dentro de un mapa, cada uno de ellos con un Listener que está a la espera de que en cuanto hagamos &#8216;click&#8217; en ellos, despliegue una InfoWindow que le hayamos asignado, pero, existe una desventaja (o ventaja depende del punto de vista) en la API v3 de GMaps, en comparación a la API v2 de GMaps, ésta es que al tener cada marcador con una ventana de información asignada, al momento de hacer click en un marcador se abre, pero si hacemos click en cualquier otro lugar del mapa (que no sea la &#8216;X&#8217;) no se cierra.</p>
<p>Lo que vamos a realizar es un cierre &#8220;automático&#8221;, esto quiere decir que al tener una InfoWindow abierta y hacer click en cualquier otro lado del mapa, se cierre en automático la ventana abierta en ese momento, de esta manera, siempre quedaría solamente una o ninguna InfoWindow en el mapa, librándonos de tener que estar cerrando manualmente cada una de las ventanas que aparezcan.</p>
<p style="text-align: center;"><a href="http://gmaps.alexfranco.mx/single-infowindow-visible"><img decoding="async" class="alignnone" title="Ver Demo Single InfoWindow" src="http://sites.google.com/site/jafrancov/stuff/ver-demo.png" alt="Ver Demo Single InfoWindow" width="140" height="57" /></a></p>
<p>En la v2 de la API de GMaps se hacía así:</p>
<pre class="brush: jscript; title: ; notranslate">
// Listener para generar y gestionar el InfoWindow
// marker es un objeto tipo Marker
	GEvent.addListener(marker, &quot;click&quot;, function() {
		marker.openInfoWindowHtml(&quot;mensaje que quisieras que apareciera&quot;);
	});
</pre>
<p>Con eso era suficiente para que apareciera y desapareciera cuando perdiera el &#8216;<em>foco</em>&#8216;, ahora para la v3 de la API de GMaps se crearon funciones para abrir (<strong>.open()</strong>) y cerrar (<strong>.close()</strong>) la <strong>InfoWindow</strong>, esto significo tener que especificar un evento para la apertura o cierre de la ventana. Esto no es problema, aunque <em>la situación principal radica cuando tienes muchos marcadores, hacer esto para cada uno de ellos</em>.</p>
<p>Solo es un poco de usar y re-usar funciones para facilitarnos la vida. Vamos a crear 2 variables globales una para el mapa y otra para una única instancia del InfoWindow, no es necesario crear más, con ella podremos crear tantas ventanas como nosotros queramos, por el momento no se les asignará el tipo de objeto, así que quedarán como <em>null</em>.</p>
<pre class="brush: jscript; title: ; notranslate">
	var map = null;
	var infoWindow = null;
</pre>
<p>Vamos a crear dos funciones que son las que van a hacer el ejercicio de abrir y cerrar la ventana, para el ejercicio se requerirá que se declaren como sigue. La función para cerrar no recibirá ningún parámetro, simplemente ejecutará el proceso de cerrar del objeto InfoWindow. La función para abrir, recibirá 2 parámetros, el primero tendrá que ser un objeto tipo <em>Marker</em> y el segundo un <em>String</em> (cadena de caracteres); el marcador previamente debe ser creado con los parámetros mínimos para su uso, es decir su posición y en qué mapa se dibujará; el string será para asignarle el contenido específico del marcador en cuestión, igual si así lo deseas, puedes agregar contenido general.</p>
<pre class="brush: jscript; title: ; notranslate">
	function closeInfoWindow() {
		infoWindow.close();
	}

	function openInfoWindow(marker, content) {
		var markerLatLng = marker.getPosition();
		infoWindow.setContent(&#x5B;
			'&lt;div style=&quot;text-align:center;&quot;&gt;',
			'Las coordenadas del &lt;b&gt;',
			content,
			'&lt;/b&gt; son:&lt;br/&gt;',
			markerLatLng.lat(),
			', ',
			markerLatLng.lng(),
			'&lt;br/&gt;&lt;br/&gt;Arr&amp;aacute;strame y haz click para actualizar la posici&amp;oacute;n.',
			'&lt;br/&gt;O puedes hacer click en cualquier otro lado para cerrarme.',
			'&lt;/div&gt;'
		].join(''));
		infoWindow.open(map, marker);
	}
</pre>
<p>Antes de llegar al código completo, vamos a tener en cuenta una pequeña instrucción, un listener que se le va a agregar al mapa, que es el que va a hacer que al momento de hacer click en cualquier parte del mapa que no sea la el infoWindow, lo cierre, independientemente de cuál sea el que esté abierto.</p>
<pre class="brush: jscript; title: ; notranslate">
		google.maps.event.addListener(map, 'click', function(){
			closeInfoWindow();
		});
</pre>
<p>Finalmente la función que se encargará de echar todo a andar, crear los marcadores y asignarles su Listener, indicar el objeto correspondiente a las variables del <em>Map</em> y del <em>InfoWindow</em>, todo este código ya lo hemos visto, así que todo el código quedaría así</p>
<pre class="brush: jscript; title: ; notranslate">
var map = null;
	var infoWindow = null;

	function closeInfoWindow() {
		infoWindow.close();
	}

	function openInfoWindow(marker, content) {
		var markerLatLng = marker.getPosition();
		infoWindow.setContent(&#x5B;
			'&lt;div style=&quot;text-align:center;&quot;&gt;',
			'Las coordenadas del &lt;b&gt;',
			content,
			'&lt;/b&gt; son:&lt;br/&gt;',
			markerLatLng.lat(),
			', ',
			markerLatLng.lng(),
			'&lt;br/&gt;&lt;br/&gt;Arr&amp;aacute;strame y haz click para actualizar la posici&amp;oacute;n.',
			'&lt;br/&gt;O puedes hacer click en cualquier otro lado para cerrarme.',
			'&lt;/div&gt;'
		].join(''));
		infoWindow.open(map, marker);
	}

	function initialize() {
		var myLatlng = new google.maps.LatLng(20.68017,-101.35437);
		var myOptions = {
		  zoom: 13,
		  center: myLatlng,
		  mapTypeId: google.maps.MapTypeId.ROADMAP
		}

		map = new google.maps.Map($(&quot;#map_canvas&quot;).get(0), myOptions);

		infoWindow = new google.maps.InfoWindow();

		google.maps.event.addListener(map, 'click', function(){
			closeInfoWindow();
		});

		var marker1 = new google.maps.Marker({
		    position: myLatlng,
		    draggable: true,
		    map: map
		});

		google.maps.event.addListener(marker1, 'click', function(){
			openInfoWindow(marker1, &quot;Marcador 1&quot;);
		});

		var marker2 = new google.maps.Marker({
			map: map,
			position: new google.maps.LatLng(20.66057, -101.37325),
			draggable: true
		});

		google.maps.event.addListener(marker2, 'click', function() {
			openInfoWindow(marker2, &quot;Marcador 2&quot;);
		});

		var marker3 = new google.maps.Marker({
			map: map,
			position: new google.maps.LatLng(20.67133, -101.32999),
			draggable: true
		});

		google.maps.event.addListener(marker3, 'click', function() {
			openInfoWindow(marker3, &quot;Marcador 3&quot;);
		});
	}

	$(document).ready(function() {
	    initialize();
	});

</pre>
<p style="text-align: center;"><a href="http://gmaps.alexfranco.mx/single-infowindow-visible"><img decoding="async" class="alignnone" title="Ver Demo Single InfoWindow" src="http://sites.google.com/site/jafrancov/stuff/ver-demo.png" alt="Ver Demo Single InfoWindow" width="140" height="57" /></a></p>
<p>Listo, ahora puedes traspolar este método a algo más dinámico como la consulta de APIs con Geolocalización por ejemplo&#8230; prueba, disfruta y practica&#8230; si tienes dudas, ya sabes dónde preguntarme :-D.</p>
<p style="text-align: right;"><em>Enjoy this Life!!</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://jafrancov.com/2010/09/single-infowindow/feed/</wfw:commentRss>
			<slash:comments>22</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1899</post-id>	</item>
		<item>
		<title>Cómo hacer hojas de café para cartas, pergaminos y más</title>
		<link>https://jafrancov.com/2010/07/hojas-de-cafe/</link>
					<comments>https://jafrancov.com/2010/07/hojas-de-cafe/#comments</comments>
		
		<dc:creator><![CDATA[Alex Franco]]></dc:creator>
		<pubDate>Fri, 09 Jul 2010 13:37:09 +0000</pubDate>
				<category><![CDATA[Detalles]]></category>
		<category><![CDATA[Amor]]></category>
		<category><![CDATA[Café]]></category>
		<category><![CDATA[Cartas]]></category>
		<category><![CDATA[Manualidades]]></category>
		<category><![CDATA[Pergaminos]]></category>
		<category><![CDATA[Tips]]></category>
		<category><![CDATA[Trucos]]></category>
		<guid isPermaLink="false">http://jafrancov.com/?p=1771</guid>

					<description><![CDATA[Es un pequeño truco que se me ocurrió algún tiempo atrás, para alguna fecha sin relevancia (no hay que esperar a &#8220;tal momento&#8221; ahora es cuando), quería hacer una carta estilo pergamino, pero que en realidad pareciera pergamino antiguo, en color de tonos cafés, como desgastado, además de que este tip le deja un toque ... <a title="Cómo hacer hojas de café para cartas, pergaminos y más" class="read-more" href="https://jafrancov.com/2010/07/hojas-de-cafe/" aria-label="Leer más sobre Cómo hacer hojas de café para cartas, pergaminos y más">Leer más</a>]]></description>
										<content:encoded><![CDATA[<p>Es un pequeño truco que se me ocurrió algún tiempo atrás, para alguna fecha sin relevancia (no hay que esperar a &#8220;tal momento&#8221; ahora es cuando), quería hacer una carta estilo pergamino, pero que en realidad pareciera pergamino antiguo, en color de tonos cafés, como desgastado, además de que este tip le deja un toque de olor a café que le da un plus al detalle. Al final puedes quemar las orillas (solamente un poco) para darle un toque aún más real.</p>
<p>Ahora si, a disfrutar el truco, recuerda que los detalles son los que dejan marcados esos gratos momentos.</p>
<p style="text-align: center;"><object width="480" height="385"><param name="movie" value="http://www.youtube.com/v/ft7Y4Hv08cU&amp;hl=es_ES&amp;fs=1?color1=0x234900&amp;color2=0x4e9e00"></param><param name="allowFullScreen" value="true"></param><param name="allowscriptaccess" value="always"></param></object></p>
<p style="text-align: right;"><em>Enjoy this Life!!</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://jafrancov.com/2010/07/hojas-de-cafe/feed/</wfw:commentRss>
			<slash:comments>8</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1771</post-id>	</item>
	</channel>
</rss>
