<?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>Draggable &#8211; Alejandro Franco</title>
	<atom:link href="https://jafrancov.com/tag/draggable/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, 08 Nov 2012 21:14:33 +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>Marcador arrastrable y cómo obtener su Lat/Lng GMaps API v3</title>
		<link>https://jafrancov.com/2010/09/draggable-marker-getting-lat-lng-gmaps-api-v3/</link>
					<comments>https://jafrancov.com/2010/09/draggable-marker-getting-lat-lng-gmaps-api-v3/#comments</comments>
		
		<dc:creator><![CDATA[Alex Franco]]></dc:creator>
		<pubDate>Tue, 07 Sep 2010 22:01:22 +0000</pubDate>
				<category><![CDATA[Codigo]]></category>
		<category><![CDATA[API]]></category>
		<category><![CDATA[Draggable]]></category>
		<category><![CDATA[GMaps]]></category>
		<category><![CDATA[InfoWindow]]></category>
		<category><![CDATA[LatLng]]></category>
		<category><![CDATA[Maps]]></category>
		<category><![CDATA[Marcadores]]></category>
		<category><![CDATA[Marks]]></category>
		<guid isPermaLink="false">http://jafrancov.com/?p=1881</guid>

					<description><![CDATA[En este pequeño espacio vamos a ver cómo y para qué nos podrían ser útiles los marcadores arrastrables pudiendo obtener la latitud y longitud, para este ejercicio vamos a ocupar el post del uso de las Info Window. Ya hemos visto como dibujar un marcador y asignarle un InfoWindow, así que esta parte será sencilla, ... <a title="Marcador arrastrable y cómo obtener su Lat/Lng GMaps API v3" class="read-more" href="https://jafrancov.com/2010/09/draggable-marker-getting-lat-lng-gmaps-api-v3/" aria-label="Leer más sobre Marcador arrastrable y cómo obtener su Lat/Lng GMaps API v3">Leer más</a>]]></description>
										<content:encoded><![CDATA[<p>En este pequeño espacio vamos a ver cómo y para qué nos podrían ser útiles los marcadores arrastrables pudiendo obtener la latitud y longitud, para este ejercicio vamos a ocupar el post del <a href="http://jafrancov.com/2010/09/info-window-gmaps-api-v3/">uso de las Info Window</a>.</p>
<p>Ya hemos visto como dibujar un marcador y asignarle un InfoWindow, así que esta parte será sencilla, ya que podremos mover el marcador de lugar y a placer, obteniendo las coordenadas de donde fue colocado, los usos que podemos darle varían infinitamente, actualmente podemos ver su uso por ejemplo en <a href="http://jafrancov.com/tag/foursquare">Foursquare</a> cuando editamos un v<em>venue</em>, podemos mover el marcador hasta el lugar más preciso donde se encuentra realmente el venue, más delante podremos hacer polígonos y delimitar las zonas usando las latitudes y longitudes para ser más precisos y bueno&#8230; miles de aplicaciones más que se pueden hacer e imaginar con ello, interesante, ¿no?</p>
<p style="text-align: center;"><a href="http://gmaps.alexfranco.mx/draggable-marker-get-lat-lng"><img decoding="async" class="aligncenter" title="Ver ejemplo de Marcador arrastrable" src="http://sites.google.com/site/jafrancov/stuff/ver-demo.png" alt="" width="140" height="57" /></a></p>
<p>En la zona de <a href="http://code.google.com/intl/es-ES/apis/maps/documentation/javascript/reference.html" target="_blank">Referencias de la API de GMaps v3</a> podremos encontrar a detalle las propiedades y funciones de cada elemento que usemos, para este ejemplo usaremos una <em>propiedad</em> de los marcadores que se llama <strong>draggable</strong>, esta propiedad hace que los marcadores que dibujemos puedan ser &#8220;<strong>arrastrables</strong>&#8220;, es decir, que los podamos tomar y arrastrarlos o moverlos a cualquier parte del mapa. Lo único que tenemos que hacer para hacer esa función es escribir en las propiedades del marcador <strong>draggable: true</strong> como lo veremos a continuación:</p>
<pre class="brush: jscript; title: ; notranslate">
		var marker = new google.maps.Marker({
		    position: myLatlng,
		    draggable: true,
		    map: map,
		    title:&amp;quot;Ejemplo marcador arrastrable&amp;quot;
		});
</pre>
<p>Ahora nos centraremos en la función que se llama <em><strong>openInfoWindow</strong></em>.</p>
<pre class="brush: jscript; title: ; notranslate">
	function openInfoWindow(marker) {
		var markerLatLng = marker.getPosition();
		infoWindow.setContent(&#x5B;
			'&amp;lt;b&amp;gt;La posicion del marcador es:&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;',
			markerLatLng.lat(),
			', ',
			markerLatLng.lng(),
			'&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Arr&amp;amp;aacute;strame y haz click para actualizar la posici&amp;amp;oacute;n.'
		].join(''));
		infoWindow.open(map, marker);
	}
</pre>
<p>En la función <em>openInfoWindow</em> podemos observar que recibe un parámetro al que manejaremos con el nombre de <em>marker</em> dentro de la función (al momento de invocar la función puede llamarse de cualquier otra manera, pero es necesario que sea un objeto tipo <strong>Marker</strong>); dentro de la función declaramos una variable llamada <em>markerLatLng</em> que va a almacenar la propiedad <em>LatLng</em> del marcador mediante la función <em><strong>getPosition()</strong></em>, lo que obtiene es un objeto con la latitud y longitud del marcador que recibió la función, para hacer referencia a cada uno de ellos, es con las subfunciones <strong>.lat()</strong> y <strong>.lng()</strong>; en el <em>setContent</em> del InfoWindow asignamos todo el contenido como un arreglo de cadenas, por eso la separación en comas y <em>no con el signo más (+)</em>, con la instrucción join se indica que se concatene o se &#8220;unan&#8221; las cadenas; por último con la función <strong>open()</strong> de infoWindow mostramos de diálogo con el contenido que le asignamos anteriormente.</p>
<p>Ahora si veamos el código completo, la mayoría del código ya lo hemos visto así que aquí está:</p>
<pre class="brush: jscript; title: ; notranslate">
	var map = null;
	var infoWindow = null;

	function openInfoWindow(marker) {
		var markerLatLng = marker.getPosition();
		infoWindow.setContent(&#x5B;
			'&amp;lt;b&amp;gt;La posicion del marcador es:&amp;lt;/b&amp;gt;&amp;lt;br/&amp;gt;',
			markerLatLng.lat(),
			', ',
			markerLatLng.lng(),
			'&amp;lt;br/&amp;gt;&amp;lt;br/&amp;gt;Arr&amp;amp;aacute;strame y haz click para actualizar la posici&amp;amp;oacute;n.'
		].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($(&amp;quot;#map_canvas&amp;quot;).get(0), myOptions);

		infoWindow = new google.maps.InfoWindow();

		var marker = new google.maps.Marker({
		    position: myLatlng,
		    draggable: true,
		    map: map,
		    title:&amp;quot;Ejemplo marcador arrastrable&amp;quot;
		});

		google.maps.event.addListener(marker, 'click', function(){
			openInfoWindow(marker);
		});
	}

	$(document).ready(function() {
	    initialize();
	});
</pre>
<p>Para este ejemplo y posteriores comenzaremos a usar funciones para un mejor manejo del código, como pueden ver hemos declarado la variable <em>map</em> e <em>infoWindow</em> como globales, las cuáles podrán usarse a través de las funciones sin temor a que se pierdan las referencias al liberar la función. La razón por la cual es mejor poner este código en una función, es que si requerimos colocar más de un marcador, podamos enlazar un InfoWindow diferente para cada uno, sin necesidad de escribir el mismo código individualmente, además de que la función puede re-usarse tantas veces como sea necesario. Para ver cómo es que funciona este ejercicio ve al siguiente enlace:</p>
<p style="text-align: center;"><a href="http://gmaps.alexfranco.mx/draggable-marker-get-lat-lng"><img decoding="async" class="aligncenter" title="Ver ejemplo de Marcador arrastrable" src="http://sites.google.com/site/jafrancov/stuff/ver-demo.png" alt="" width="140" height="57" /></a></p>
<p>Es todo por esta ocasión si tienen dudas ya saben cómo y dónde preguntar, mucha suerte&#8230;</p>
<p style="text-align: right;"><em>Enjoy this Life!!</em></p>
]]></content:encoded>
					
					<wfw:commentRss>https://jafrancov.com/2010/09/draggable-marker-getting-lat-lng-gmaps-api-v3/feed/</wfw:commentRss>
			<slash:comments>39</slash:comments>
		
		
		<post-id xmlns="com-wordpress:feed-additions:1">1881</post-id>	</item>
	</channel>
</rss>
