Foros del Web » Programando para Internet » Javascript »

Ayuda con google maps y base de datos

Estas en el tema de Ayuda con google maps y base de datos en el foro de Javascript en Foros del Web. Hola: Tengo una base de datos donde hay dos registros con la longitud y latitud y quiero colocar, en una web, un mapa (google map) ...
  #1 (permalink)  
Antiguo 12/05/2010, 05:56
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 21 años, 2 meses
Puntos: 1
Ayuda con google maps y base de datos

Hola:
Tengo una base de datos donde hay dos registros con la longitud y latitud y quiero colocar, en una web, un mapa (google map) con esos parametros. Estoy haciendo pruebas pero no me sale nada:

<?php
function conectar()
{
$base_de_datos = "basededatos";
$db_usuario = "root";
$db_password = "";

if (!($link = mysql_connect("localhost", $db_usuario, $db_password)))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db($base_de_datos, $link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}

$db = conectar();
$resultados = mysql_query("SELECT * FROM tabla WHERE id='38'");
while($articulo=mysql_fetch_array($resultados)) {

echo"

<script

src=http://maps.google.com/maps?file=api&v=2&kAQUI-TU-CLAVE-GOOGLE-MAPSLbIx-A type=text/javascript></script>
<script type=text/javascript>
//<![CDATA[
function load() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById(map));
map.setCenter(new GLatLng(), 17);
map.addControl(new GLargeMapControl(".$articulo['Latitud'].",".$articulo['Longitud'].")); map.setMapType(G_SATELLITE_MAP);

var point = new GPoint (".$articulo['Longitud'].",".$articulo['Latitud'].");
var marker = new GMarker(point);
map.addOverlay(marker);
}
}
//]]>
</script>
</head>
<body onload=load() onunload=GUnload()>
<div id=map style=width: 615px; height: 400px></div>

";
}
?>

Esto está bien o es una aberración, tened en cuenta que estoy aprendiendo.
  #2 (permalink)  
Antiguo 12/05/2010, 08:34
Avatar de GatorV
$this->role('moderador');
 
Fecha de Ingreso: mayo-2006
Ubicación: /home/ams/
Mensajes: 38.567
Antigüedad: 18 años, 6 meses
Puntos: 2135
Tema movido desde PHP a Javascript
  #3 (permalink)  
Antiguo 14/05/2010, 12:49
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 21 años, 2 meses
Puntos: 1
Respuesta: Ayuda con google maps y base de datos

¿ Nadie me va a hechar una mano ?
  #4 (permalink)  
Antiguo 14/05/2010, 22:55
 
Fecha de Ingreso: septiembre-2009
Ubicación: Neuquén
Mensajes: 142
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: Ayuda con google maps y base de datos

que es lo que no te sale? no se visualiza el mapa? o se visualiza el mapa pero no aparece el marcador?
  #5 (permalink)  
Antiguo 15/05/2010, 04:26
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 21 años, 2 meses
Puntos: 1
Respuesta: Ayuda con google maps y base de datos

Se queda en blanco no sale ni mapa ni nada
  #6 (permalink)  
Antiguo 15/05/2010, 08:04
 
Fecha de Ingreso: septiembre-2009
Ubicación: Neuquén
Mensajes: 142
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: Ayuda con google maps y base de datos

En la parte que incluis el script de Google... ¿Estás usando tu clave de la API?

Código HTML:
Ver original
  1. <script src="http://maps.google.com/maps?file=api&v=2&k=AQUI-TU-CLAVE-GOOGLE-MAPSLbIx-A" type="text/javascript"></script>

Donde dice AQUI-TU-CLAVE-GOOGLE me imagino que estás utilizando tu clave, ¿No?
  #7 (permalink)  
Antiguo 16/05/2010, 13:45
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 21 años, 2 meses
Puntos: 1
Respuesta: Ayuda con google maps y base de datos

Claro que si
  #8 (permalink)  
Antiguo 17/05/2010, 15:02
 
Fecha de Ingreso: septiembre-2009
Ubicación: Neuquén
Mensajes: 142
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: Ayuda con google maps y base de datos

Mire bien tu vodigo y note algunos errores...

1. Cuando seleccionas el div del map, tenes q ponerlo como string: document.getElementById('map')
2. En map.setCenter() te faltan las cordenadas en GLatLng()
3. Cuando pasas la clave por método GET incluyendo el script de Google, debe ser "key=TU_CLAVE". Vi que tenías "k=TU_CLAVE"

Acá te dejo un ejemplo para que veas como te tendria que quedar... Y asi me anduvo... Reemplaza la clave por la tuya.

Código HTML:
Ver original
  1.     <head>
  2.         <title></title>
  3.         <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA" type="text/javascript"></script>
  4.         <script type="text/javascript">
  5.             //<![CDATA[
  6.             function initialize() {
  7.                 if (GBrowserIsCompatible()) {
  8.                     var map = new GMap2(document.getElementById('map_canvas'));
  9.                     map.setCenter(new GLatLng(37.4419, -122.1419), 17);
  10.                     map.addControl(new GLargeMapControl(37.4419, -122.1419));
  11.                     map.setMapType(G_SATELLITE_MAP);
  12.                    
  13.                     var point = new GPoint(-122.1419, 37.4419);
  14.                     var marker = new GMarker(point);
  15.                     map.addOverlay(marker);
  16.                 }
  17.             }
  18.             //]]>
  19.         </script>
  20.     </head>
  21.     <body onload="initialize()" onunload="GUnload()">
  22.         <div id="map_canvas" style="width: 400px; height: 200px;"></div>
  23.     </body>
  24. </html>

Te quedaría adaptarlo a tus necesidades, y reemplazar las coordenadas, por las variables... Ej. <?php $var ?>

¡Saludos!
  #9 (permalink)  
Antiguo 20/05/2010, 02:58
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 21 años, 2 meses
Puntos: 1
Respuesta: Ayuda con google maps y base de datos

Gracias Nisrokh, ahora me surge el problema que las variables no las reconoce, las saco de una base de datos, este es el script:

<?php
function conectar()
{
$base_de_datos = "Mi base de datos";
$db_usuario = "usuario";
$db_password = "pasw.";

if (!($link = mysql_connect("localhost", $db_usuario, $db_password)))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db($base_de_datos, $link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}

$db = conectar();
$resultados = mysql_query("SELECT * FROM tabla WHERE id='38'");
while($articulo=mysql_fetch_array($resultados))
?>
<html>
<head>
<title></title>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=ABQ IAAAAIxQWpU1-QF8PtuHoL59_tBRlJPYwn47xzjqwfW1L972ysqJV7hTeTtJFq6 w4AZdwjiz5j_tNLbIx-A" type="text/javascript"></script>
<script type="text/javascript">
//<![CDATA[
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById('map_canvas'));
map.setCenter(new GLatLng(<?php ".$articulo['Latitud']."?>,<?php ".$articulo['Longitud']."?>), 17);
map.addControl(new GLargeMapControl(<?php ".$articulo['Latitud']."?>,<?php ".$articulo['Longitud']."?>));
map.setMapType(G_SATELLITE_MAP);
var point = new GPoint(<?php ".$articulo['Lingitud']."?>,<?php ".$articulo['Latitud']."?>);
var marker = new GMarker(point);
map.addOverlay(marker); } } //]]>
</script>
</head>
<body onload="initialize()" onunload="GUnload()">
<div id="map_canvas" style="width: 400px; height: 200px;"></div>
</body>

</body>


Pero me da el error:
Parse error: syntax error, unexpected T_ENCAPSED_AND_WHITESPACE, expecting T_STRING or T_VARIABLE or T_NUM_STRING
  #10 (permalink)  
Antiguo 23/05/2010, 02:27
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 21 años, 2 meses
Puntos: 1
Respuesta: Ayuda con google maps y base de datos

Por favor ¿ Alguien puede ayudarme ?
  #11 (permalink)  
Antiguo 04/06/2010, 11:46
 
Fecha de Ingreso: septiembre-2009
Ubicación: Neuquén
Mensajes: 142
Antigüedad: 15 años, 1 mes
Puntos: 12
Respuesta: Ayuda con google maps y base de datos

Creo que este es tu error:

Código PHP:
Ver original
  1. <?php ".$articulo['Latitud']."?>,<?php ".$articulo['Longitud']."?>
  2. // Eso imprimiria algo asi, por Ej. ".37.123456., .37.123456."
  3. // Aunque no lo va a imprimir porque no le estas ordenando que haga "echo" o "print" con esa informacion...
  4. // Aun asi, fijate en los puntos

Ya que si lo que queres es enviar esos datos al explorador tendrias que hacer asi:

Código PHP:
Ver original
  1. <?php print $articulo['Latitud'] ?>
  2. // O asi...
  3. <?php print $articulo['Latitud']. ", " .$articulo['Longitud'] ?>
  4. // O asi...
  5. <?php print "{$articulo['Latitud']}, {$articulo['Longitud']}" ?>

Ya que lo que estabas haciendo, era concatenar las variables de una manera incorrecta, no se puede cerrar con ?> y seguir concatenando despues de abrir <?php, ya que te mostrara error. Y tampoco hace falta abrir comillas, si quieres empezar a concatenar con una variable:

Código PHP:
Ver original
  1. $var = "" .$algo. "";
  2. // Eso NO esta mal, pero seria complicarse las cosas... Es igual hacer eso:
  3. $var = $algo;
  4. // O si quieres forzarlo a ser una cadena (string) se puede de muchas maneras...
  5.  
  6. // 1
  7. $var = "{$algo}";
  8. // 2
  9. $var = (string)$algo;
  10. // 3
  11. $var = '';
  12. $var.= $algo;

Te muestro con el codigo completo...

Código HTML:
Ver original
  1.     <head>
  2.         <title></title>
  3.         <script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=ABQIAAAAzr2EBOXUKnm_jVnk0OJI7xSosDVG8KKPE1-m51RBrvYughuyMxQ-i1QfUnH94QxWIa6N4U6MouMmBA" type="text/javascript"></script>
  4.         <script type="text/javascript">
  5.             //<![CDATA[
  6.            function initialize() {
  7.                if (GBrowserIsCompatible()) {
  8.                    var map = new GMap2(document.getElementById('map_canvas'));
  9.                    map.setCenter(new GLatLng(<?php print $articulo['latitud'] ?>, <?php print $articulo['longitud'] ?>), 17);
  10.                    map.addControl(new GLargeMapControl(<?php print $articulo['latitud'] ?>, <?php print $articulo['longitud'] ?>));
  11.                    map.setMapType(G_SATELLITE_MAP);
  12.                    
  13.                    var point = new GPoint(<?php print $articulo['latitud'] ?>, <?php print $articulo['longitud'] ?>);
  14.                    var marker = new GMarker(point);
  15.                    map.addOverlay(marker);
  16.                }
  17.            }
  18.            //]]>
  19.         </script>
  20.     </head>
  21.     <body onload="initialize()" onunload="GUnload()">
  22.         <div id="map_canvas" style="width: 400px; height: 200px;"></div>
  23.     </body>
  24. </html>

Última edición por Nisrokh; 04/06/2010 a las 11:52
  #12 (permalink)  
Antiguo 05/06/2010, 10:23
 
Fecha de Ingreso: septiembre-2003
Mensajes: 180
Antigüedad: 21 años, 2 meses
Puntos: 1
Respuesta: Ayuda con google maps y base de datos

Gracias por responder, pero sigue sin salir nada, lo que quiero es que el script de Google maps tome los datos de longitud y latitud que hay en la base de datos y muestre el mapa con el punto correspondiente a esas coordenadas.


Este es el codigo completo:

<html>
<head>
<title></title>
<?php
function conectar()
{
$base_de_datos = "Mi base de datos";
$db_usuario = "Mi usuario";
$db_password = "Mi pass ";

if (!($link = mysql_connect("localhost", $db_usuario, $db_password)))
{
echo "Error conectando a la base de datos.";
exit();
}
if (!mysql_select_db($base_de_datos, $link))
{
echo "Error seleccionando la base de datos.";
exit();
}
return $link;
}

$db = conectar();
$resultados = mysql_query("SELECT * FROM tabla WHERE id='38'");
while($articulo=mysql_fetch_array($resultados))
?>
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=ABQ IAAAAIxQWpU1-QF8PtuHoL59_tBRlJPYwn47xzjqwfW1L972ysqJV7hTeTtJFq6 w4AZdwjiz5j_tNLbIx-A"
type="text/javascript">
</script>
<script type="text/javascript">
//<![CDATA[
function initialize() {
if (GBrowserIsCompatible()) {
var map = new GMap2(document.getElementById('map_canvas'));
map.setCenter(new GLatLng(<?php $articulo['latitud'] ?>,<?php $articulo['longitud'] ?>), 17);
map.addControl(new GLargeMapControl(<?php $articulo['latitud'] ?>,<?php $articulo['longitud'] ?>));
map.setMapType(G_SATELLITE_MAP);
var point = new GPoint(<?php $articulo['latitud'] ?>, <?php $articulo['longitud'] ?>);
var marker = new GMarker(point);
map.addOverlay(marker);
}
} //]]>
</script>
</head>
<body onload="initialize()" onunload="GUnload()">
<div id="map_canvas" style="width: 400px; height: 200px;"></div>
</body>
</html>
  #13 (permalink)  
Antiguo 01/08/2010, 11:00
 
Fecha de Ingreso: julio-2010
Mensajes: 1
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda con google maps y base de datos

Hola,
Yo tengo el mismo problema, estoy tratando de buscar la solucion y no la encuentro, pero yo lo programo en .net aspx

alguien nos puede ayudar por favor.
  #14 (permalink)  
Antiguo 12/08/2010, 17:09
 
Fecha de Ingreso: agosto-2010
Mensajes: 1
Antigüedad: 14 años, 3 meses
Puntos: 0
Respuesta: Ayuda con google maps y base de datos

hola, segun lo que entiendo es que tienes una base de datos donde estas guardando unas coordenadas ( lat, lng ) y las kieres mostrar en google maps.

ps bueno yo tengo algo parecido no se si te sirva:

(trate de modificarlo a tus necesidades pero ojala te sirva)

//////////////// CONEXION BD ////////////////////////////

if (!($link=mysql_connect("SERVIDOR","USUARIO","CONTR ASEÑA"))) {
echo "
<div class='content' align='center'>
<table border='2' cellpadding='2'>
<tbody>
<tr style='background-color:#033; color:; font-weight:bold'>
<td><h2>Error connecting to Database.</h2></td>
</tr>
</tbody>
</table>
</div>
";
exit();
}
if (!mysql_select_db("BASEDEDATOS",$link)) {
echo "
<div class='content' align='center'>
<table border='2' cellpadding='2'>
<tbody>
<tr style='background-color:#033; color:; font-weight:bold'>
<td><h2>Error selecting to Database.</h2></td>
</tr>
</tbody>
</table>
</div>
";
exit();
}


//////////////// CONSULTA DE LAS COORDENADAS ////////////////////////////
<?php

$sqlcoor = "SELECT lat, lng FROM tabla WHERE id= '38'";

$rescoor = mysql_query($sqlcoor, $link);

while($rowcoor = mysql_fetch_array($rescoor))
{
$latlug = $rowcoor['lat'];
$lnglug = $rowcoor['lng'];
?>

<a href="javascript:coord('<?php echo $rowcoor['lat'];?>','<?php echo $rowcoor['lng'];?>','<?php echo $rowcoor['nombre'];?>')" style="color:#000">
</a>


//////////////// SCRIPT DE LAS COORDENADAS ////////////////////////////
<script src="http://maps.google.com/maps?file=api&amp;v=2&amp;sensor=false&amp;key=tu clavee" type="text/javascript"></script>


<script type="text/javascript">
function coord(v1, v2){

var map;
var lugar;
var lat = v1;
var lon = v2;

if (GBrowserIsCompatible()) {
map = new GMap2(document.getElementById("map_canvas"));

lugar = new GLatLng(lat, lon)
map.setCenter(lugar, 17);
map.setUIToDefault();
map.setMapType(G_NORMAL_MAP);
map.addControl(new GOverviewMapControl());

// esto es para crear un icono pero si kieres no se lo pongas
var avatar = "http://localhost/web/img/foto.jpg";

map.addOverlay(createMarker(lugar, avatar));
}

function createMarker(latlng, img_url) {
// Se define el icono
var icon = new GIcon();
icon.image = img_url
icon.iconSize = new GSize(25, 25);
icon.iconAnchor = new GPoint(50, 50);
icon.infoWindowAnchor = new GPoint(25, 25);

// Se crea el marcador
var marker = new GMarker(latlng, icon);

GEvent.addListener(marker, "click", function() {

var myHtml = "<div>"+
"<fieldset>" +
"<div>" +
"<label>" +
"<img src='" + img_url + "'/>" +
"<br/><hr/>" +
"LAT: " +
lat +
"<br/><br/>" +
"LNG: " +
lon +
"<br/><br/>" +
"</label>" +
"</div>" +
"</fieldset>" +
"</div>";

map.openInfoWindowHtml(latlng, myHtml);
});

return marker;
}
}
</script>







NOTA: no le des copy paste ya que tienes que mirar tus cosas y ver que le puedes cambiar para que te funcione con lo tuyo







OTRA COSA: alguno me puede ayudar en especificar una ruta para colombia, es que hago el metodo con el GDirection pero siempre me dice que sale error porque no reconoce algo,

obiamente si a ese mismo metodo le meto coordenadas de USA o España por ejemplo si la hace. no se como hacer eso. ayudenme por favor.

Etiquetas: google, maps
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 18:27.