Foros del Web » Programando para Internet » Javascript »

Geolocalizacion de Usuarios con Gmaps

Estas en el tema de Geolocalizacion de Usuarios con Gmaps en el foro de Javascript en Foros del Web. Que tal muchachos, encontré una aplicacion que usa Google Maps (v2) y Mysql, funciona todo ok, pero resulta que modifiqué el ultimo archivo que es ...
  #1 (permalink)  
Antiguo 23/09/2012, 13:30
Avatar de tobal_mx  
Fecha de Ingreso: junio-2011
Ubicación: Curicó
Mensajes: 32
Antigüedad: 12 años, 11 meses
Puntos: 0
Pregunta Geolocalizacion de Usuarios con Gmaps

Que tal muchachos, encontré una aplicacion que usa Google Maps (v2) y Mysql, funciona todo ok, pero resulta que modifiqué el ultimo archivo que es el que representa a los usuarios en el mapa y le puse un buscador bastante sencillo, el mapa muestra en un div los usuarios que estan registrados y tiene la propiedad de hacer click y habrirse el globo en el mapa con la informacion que corresponda:

Código:
<script type="text/javascript">
    if (GBrowserIsCompatible()) {
      var side_bar_html = "";
      var gmarkers = [];
      var htmls = [];
      var i = 0;
      var gicons = [];
      gicons["map"] = new GIcon(G_DEFAULT_ICON, "http://maps.google.com/mapfiles/ms/micons/red-pushpin.png");
	side_bar_html = '<span class="note"></span>';
      function createMarker(point,name,html,icontype) {
        var marker = new GMarker(point, gicons[icontype]);
        GEvent.addListener(marker, "click", function() {
          marker.openInfoWindowHtml(html);
        });
        gmarkers[i] = marker;
        htmls[i] = html;
        side_bar_html += '<span class="note"><a href="javascript:myclick(' + i + ')">Ver<\/a><\/span> ';
        i++;
        return marker;
      }
      function myclick(i) {
        gmarkers[i].openInfoWindowHtml(htmls[i]);
      }
      var map = new GMap2(document.getElementById("map"));
      map.addControl(new GLargeMapControl());
      map.addControl(new GMapTypeControl());
      map.setCenter(new GLatLng(-35.101934057246055, -71.3232421875), 8);
      var request = GXmlHttp.create();
      request.open("GET", "informacion.php", true);
      request.onreadystatechange = function() {
        if (request.readyState == 4) {
          var xmlDoc = GXml.parse(request.responseText);
          var markers = xmlDoc.documentElement.getElementsByTagName("marker");
          for (var i = 0; i < markers.length; i++) {
            var lat = parseFloat(markers[i].getAttribute("lat"));
            var lng = parseFloat(markers[i].getAttribute("lng"));
            var point = new GLatLng(lat,lng);
            var html = markers[i].getAttribute("html");
            var label = markers[i].getAttribute("label");
            var icontype = markers[i].getAttribute("icontype");
            var marker = createMarker(point,label,html,icontype);
            map.addOverlay(marker);
          }
          document.getElementById("side_bar").innerHTML = side_bar_html;
        }
      }
      request.send(null);
    }

    else {
      alert("El API de google maps no es compatible con este browser");
    }
    </script>
el mapa saca la info del siguiente archivo
Código PHP:
<?php session_start();
include(
"3.php");
echo 
"<markers>";
$user=$_SESSION['estado'];
$marker=0;
$registros=mysql_query("select * from google_maps where Lat!='0' and Lng!=''"$conexion) or die("Problemas en el select:".mysql_error());
while (
$reg=mysql_fetch_array($registros))
$marker++;
echo 
"<marker lat='".$reg['Lat']."' lng='".$reg['Lng']."' html='
Alumno:"
.$reg['Nick']."
Matricula:"
.$reg['Matricula']."
Direccion:"
.$reg['direccion']."
'  label='"
.$reg['Nick']."' icontype='map'/>";
}
echo 
"</markers>";
?>
y el div que muestra el enlace es este
Código HTML:
<div id="side_bar"> 
el tema es que el div anterior muestra todos los usuarios que estén hasta el momento registrados, pero como le puse un buscador, ¿seria posible mostrar
ese enlace en los resultados de busqueda que tubiese el link solamente del usuario que se buscó ?

algun maestro del javascript que me ayude porfavor :) gracias
  #2 (permalink)  
Antiguo 23/09/2012, 14:35
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Geolocalizacion de Usuarios con Gmaps

En el PHP has de escoger el usuario exclusivo y chequearlo con la base de datos.

No veo la estructura del xml por lo que no sé si recorres un solo archivo y escoges un solo usuario o cada usuario tiene un xml diferenciado. Ello lo arrastras desde PHP hasta tu javascript nuevo.

De cualquier modo, has de crear un javascript hacia una página diferente al grupo.

P.D.: te recomiendo migres a V3 de Google maps.
  #3 (permalink)  
Antiguo 23/09/2012, 15:46
Avatar de tobal_mx  
Fecha de Ingreso: junio-2011
Ubicación: Curicó
Mensajes: 32
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Geolocalizacion de Usuarios con Gmaps

Gracias por orientarme txemaarbulo vamos a ver que sale ;)
  #4 (permalink)  
Antiguo 23/09/2012, 15:53
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Geolocalizacion de Usuarios con Gmaps

Cita:
Iniciado por tobal_mx Ver Mensaje
Gracias por orientarme txemaarbulo vamos a ver que sale ;)
Yo personalmente genero un xml directamente por usuario, lo cual lo hace más fácil. Según como lo tengas me lo dices y veremos cómo puedo ayudarte (siempre iré por la V3).

Me comentas.
  #5 (permalink)  
Antiguo 26/09/2012, 12:01
Avatar de tobal_mx  
Fecha de Ingreso: junio-2011
Ubicación: Curicó
Mensajes: 32
Antigüedad: 12 años, 11 meses
Puntos: 0
Respuesta: Geolocalizacion de Usuarios con Gmaps

txemaarbulo al final segui el consejo de realizar la busqueda en un mapa aparte, ahora resulta bien con

Código PHP:
<script type="text/javascript">
//<![CDATA[

var map = new GMap2(document.getElementById("map"));
map.addControl(new GLargeMapControl());
map.addControl(new GMapTypeControl());
map.addControl(new GScaleControl());
map.setCenter(new GLatLng(-35.101934057246055, -71.3232421875), 8, G_NORMAL_MAP);

function createMarker(point, number)
{
var marker = new GMarker(point);
var html = number;
GEvent.addListener(marker, "click", function() {marker.openInfoWindowHtml(html);});
return marker;
};
<?php
$link 
mysql_connect("127.0.0.1""root""123") or die("error al conectar: " mysql_error());
mysql_selectdb("sig",$link) or die ("error al conectar a la base de datos : " mysql_error());

$result mysql_query("SELECT * FROM google_maps where Matricula='$palabra' or rut='$palabra'",$link);
if (!
$result)
{
echo 
"<script>alert('No se encontraron resultados');</script>;";
}
while(
$row mysql_fetch_array($result))
{
echo 
"var point = new GLatLng(" $row['Lat'] . "," $row['Lng'] . ");\n";
echo 
"var marker = createMarker(point, ' <b>Matricula:</b>" addslashes($row['Matricula']) . " <b>Nombre:</b> ".addslashes($row['Nick']) ." <b>Direccion:</b> ".addslashes($row['direccion'])."<br><b> Carrera:</b>".addslashes($row['carrera'])."');\n";
echo 
"map.addOverlay(marker);\n";
echo 
"\n";
}

mysql_close($link);
?>

//]]>
</script>
y creo tambien que es mejor migrar el codigo a la V3 , gracias por el apoyo master !
  #6 (permalink)  
Antiguo 26/09/2012, 13:20
txemaarbulo
Invitado
 
Mensajes: n/a
Puntos:
Respuesta: Geolocalizacion de Usuarios con Gmaps

Respecto a migrar a la V3, en otro tema de este foro (buscador de google maps) indicaba en el permalink #2 el acceso a la API V3 de Google Maps, y en el #7 le desarrolaba el mapa (en aquel caso de localización de dirección).

Desde le referencia de la V3 tienes acceso a diversos ejemplos de código. Creo que ello es mejor que cualquier tutorial sobre la migración de versiones (al menos de lo que he podido ver). Creo que te será muy fácil adaptarlo.

Para cualquier duda me envías un MP.

Saludos.

Etiquetas: api, google, maps, mysql, php
Atención: Estás leyendo un tema que no tiene actividad desde hace más de 6 MESES, te recomendamos abrir un Nuevo tema en lugar de responder al actual.
Respuesta




La zona horaria es GMT -6. Ahora son las 17:49.