| App inventor 2 en español  Cómo programar los teléfonos móviles con Android
 mediante App inventor 2 - Juan Antonio Villalpando
 --- PHP y MySQL en App Inventor 2 -- Volver al índice del tutorial de PHP y MySQL ____________________________ 325.- Archivo, PHP y Mapa de Google.   p325_php_mapa_google.aia
 NOTA: a partir de 2017 Google dejó de admitir esta manera de poner las marcas.  Hemos visto mapas de Google en: 5.- (MAPA GOOGLE) Acelerómetro. 8E.- (MAPA GOOGLE)   FirebaseDB mapas de Google.  8F.-   (MAPA GOOGLE) FirebaseDB mapas de Google. 49.- (MAPA GOOGLE) GPS + Correo + SMS + mapa de Google. Propuesta de código. 49B.- (MAPA GOOGLE) Marcas en los mapas de Google. 325.- (MAPA GOOGLE) Archivo PHP y Mapa de Google.    - Vamos a basarnos en el 49Bmapagoogle.htm. - Mediante el GPS vamos a obtener las coordenadas (Latitud y Longitud) donde nos encontramos. - Y vamos a realizar una página web, subida a nuestro hosting (317_hosting_gratuito_3.htm), para que cualquiera desde el móvil o desde su ordenador entre en esa página web y mediante un mapa de Google vea donde nos encontramos.  _____________________________- Inicio.
 - Nos vamos a basar en este archivo visto en... 49Bmapagoogle.htm. - Veamos el archivo pr1.htm  - Observamos los carácteres rojos en negrita. - Debemos tener un archivo en donde el código pueda ir agregando las coordenadas de la forma:   ["18 - 12" , 36.523924, -6.1911, 0], (En el primer dato, por ejemplo "18 - 12", pondremos hora y minuto, y el último lo pondremos a siempre a cero). - Además necesitamos la coordenada para centrar el mapa a la pantalla del móvil: center: new google.maps.LatLng(36.531, -6.189), - En nuestro código PHP tendremos el archivo dividido en varias partes e iremos agregando las coordenadas en sus sitios correspondientes.  - Así es como se ve este archivo en la web: http://kio4.esy.es/pr_1.htm 
        
          | Código de otro tutorial, nos basaremos en este: pr_1.htm |  
          | 
<!DOCTYPE html>
<html> 
<head> 
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
  <title>Mapa de Google - KIO.COM</title> 
  <script src="http://maps.google.com/maps/api/js?sensor=false" 
          type="text/javascript"></script>
</head> 
<body>
  <div id="mapa_pr" style="height: 480px; width: 300px"></div>
  <script type="text/javascript">
    var sitios = [
      ['El Muelle', 36.523924, -6.1911, 9],
      ['Centro Administrativo', 36.5258, -6.1911, 8],
      ['Iglesia San Sebastián', 36.52894, -6.1899, 7],
      ['San José', 36.52893, -6.1906, 6],
      ['Ayuntamiento', 36.528676, -6.19234, 5],
      ['La Cachucha', 36.52569, -6.1841, 4],
      ['El Porvenir', 36.53056, -6.1863, 3],
      ['Las Canteras', 36.5372, -6.1851, 2],
      ['Polideportivo', 36.5268, -6.1936, 1]
    ];
    var map = new google.maps.Map(document.getElementById("mapa_pr"), {
    center: new google.maps.LatLng(36.531, -6.189),
      zoom: 15,
      mapTypeId: google.maps.MapTypeId.SATELLITE
    });
    var infowindow = new google.maps.InfoWindow();
    var marker, i;
    for (i = 0; i < sitios.length; i++) {  
        marker = new google.maps.Marker({
        position: new google.maps.LatLng(sitios[i][1], sitios[i][2]),
        map: map
      });
      google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
          infowindow.setContent(sitios[i][0]);
          infowindow.open(map, marker);
        }
      })(marker, i));
    }
  </script>
</body>
</html> |  _____________________________- Empezamos.
 - Debemos crear el archivo pr_a.htm. - Fíjate que es la parte de arriba del archivo anterior, antes de las coordenadas.  
        
          | Copia este código en un archivo llamado pr_a.htm |  
          | 
<!DOCTYPE html>
<html> 
<head> 
  <meta http-equiv="content-type" content="text/html; charset=UTF-8" /> 
  <title>Mapa de Google - KIO.COM</title> 
  <script src="http://maps.google.com/maps/api/js?sensor=false" 
          type="text/javascript"></script>
</head> 
<body>
  <div id="mapa_pr" style="height: 480px; width: 300px"></div>
  <script type="text/javascript">
    var sitios = [ |  - También debemos crear el archivo pr_b.htm - Fíjate que es la parte de abajo del archivo anterior, después de las coordenadas de centrado.  
        
          | Copia este código en un archivo llamado pr_b.htm |  
          | 
),
      zoom: 15,
      mapTypeId: google.maps.MapTypeId.SATELLITE
    });
    var infowindow = new google.maps.InfoWindow();
    var marker, i;
    for (i = 0; i < sitios.length; i++) {  
        marker = new google.maps.Marker({
        position: new google.maps.LatLng(sitios[i][1], sitios[i][2]),
        map: map
      });
      google.maps.event.addListener(marker, 'click', (function(marker, i) {
        return function() {
          infowindow.setContent(sitios[i][0]);
          infowindow.open(map, marker);
        }
      })(marker, i));
    }
  </script>
</body>
</html> |  - Pues bien, entre esos dos archivos debemos agregar  la parte de los datos, algo así...  
        
          | 
 
	  
      ["18 - 12", 36.523924, -6.1911, 0],
      ["18 - 21", 36.5258, -6.1911, 0],
    
    ];
    var map = new google.maps.Map(document.getElementById("mapa_pr"), {
    center: new google.maps.LatLng(36.531, -6.189
	          |  - Si unimos:  el pr_a.htm + la parte de los datos + pr_b.htm - Obtendremos el archivo pr_final.htm que será el archivo que tendrá toda la información para presentar el mapa.  - Los archivos pr_a.htm y pr_b.htm, ya los tenemos, lo complicado será unirlos con los datos intermedios, es decir introducir la parte de los datos. - Manos a la obra.  _________________- Diseño.
 - Fíjate que hay un VisorWeb y un Web.  _________________- Bloques.
 
 - Cuando pulsamos el Botón, se tomará la Latitud y Longitud del SensorDeUbicación (GPS). - Se presentará en los CampoDeTextos y en la Etiqueta. - Se llamará al archivo PHP: http://kio4.esy.es/pr_unir.php con los datos de lati_long Algo así: lati_long=36.123,-6.456  - Una vez realizado todo el proceso se verá el mapa en el móvil mediante un VisorWeb en la página http://kio4.esy.es/pr_final.htm - En cualquier ordenador se podría poner esa dirección y también veríamos la página web con el mapa de Google y con las marcas de ubicación.  _________________- Código PHP.
 - Esto es lo dificil de esta aplicación, entender el código PHP. - Se recibe la información enviada por Web1.Url y lati_long=36.123,-6.345  - Se crea la $hora = date('H - i '); - Además se crea el $lugar = ["18 - 12", 36.123, -6.345, 0]  - Se Agrega ese $lugar al final del archivo pr_a.htm - Se crea el archivo pr_final que es igual que el pr_a.htm - Se añade al archivo pr_final_htm la parte de coordenada de centrado: $centrado = '];
    var map = new google.maps.Map(document.getElementById("mapa_pr"), {
    center: new google.maps.LatLng('.$lati_long;- Se añade al pr_final.htm la parte de abajo, es decir pr_b.htm - El archivo pr_final.htm contendrá el código del mapa de Google.  http://kio4.esy.es/pr_final.htm 
        
          | Copia este código en un archivo llamado pr_unir.php |  
          | 
<?php
// Juan A. Villalpando
// KIO4.COM
// juana1991@yahoo.com
$datos_recibidos = $_POST;
$lati_long = $datos_recibidos['lati_long'];
// Recibe la latitud y longitud
// $lati_long = '36.123,-6.456'
date_default_timezone_set('Europe/Madrid'); 
// Hora en otros países. http://php.net/manual/en/timezones.america.php
$hora = date('H - i'); // Presenta la hora y el minuto.
$lugar = '["'.$hora.'",'.$lati_long.', 0],';
// $lugar = '[ "18 - 12",'.$lati_long.', 0],';
// Esto es lo que hay que Añadir para presentar las marcas.
// $lugar = ["18 - 12", 36.123,-6.456, 0]
// Añade: $lugar = ["18 - 12", 36.123,-6.345, 0],  al archivo pr_a.htm
$pr_a = fopen('pr_a.htm', 'a') or die("No se puede abrir el archivo.");
fwrite($pr_a, $lugar);
///////////////////////////////////////////////////////////////////////////
// Juan A. Villalpando
// KIO4.COM
// Crea el archivo pr_final.htm vacío
// El archivo está creado mediante WRITE para que se cree vacío.
$pr_final = fopen('pr_final.htm', 'w') or die("No se puede abrir el archivo.");
// Pasa todo el contenido de pr_a.htm a pr_final.htm
$content = file_get_contents('pr_a.htm');
file_put_contents('pr_final.htm', $content);
fclose($pr_final);
// Cerramos el archivo como WRITE
// En estos momentos pr_final.htm y pr_a.htm son iguales.
///////////////////////////////////////////////////////////////////////////
// Añade la parte de centrado al archivo pr_final.htm
// El archivo se abre mediante APPEND para que se pueda Añadir
// Aquí ponemos la parte del centrado y las coordenadas para centrar  .$lati_long
$centrado = '];
    var map = new google.maps.Map(document.getElementById("mapa_pr"), {
    center: new google.maps.LatLng('.$lati_long;
$pr_final = fopen('pr_final.htm', 'a') or die("No se puede abrir el archivo.");
fwrite($pr_final, $centrado);
///////////////////////////////////////////////////////////////////////////
// Añade el trozo final, es decir pr_b.htm
// Une dos archivos pr_final.htm = pr_final.htm + pr_b.htm
$content = file_get_contents('pr_b.htm');
file_put_contents('pr_final.htm', $content, FILE_APPEND);
sleep(1);
fclose($pr_a);
fclose($pr_final);
?> |  _____________________________________- Subir los archivos.
 - Mediante el cliente de FTP Filezilla, subimos los archivos al servidor web. - El archivo pr_final.htm, no hay que subirlo ya que se creará automáticamente mediante el código PHP. - Para trabajar con este ejemplo de aplicación deberemos estar continuamente consultando mediante FTP cómo van evolucionando los archivos.   
 - Es conveniente que cada vez que realices una modificación del código suba los tres archivos indicados.  _____________________________________Propuestas.
 - Esto es todo amigos. Es simplemente una aplicación didáctica que evidentemente se puede mejorar, pero que he intentado explicarla y presentarla de forma sencilla par que el lector pueda entendarla y a partir de ahí, experimentar. - El éxito de la aplicación depende de la exactitud del GPS.  - Se podría poner un Reloj para que cada 10 minutos grabara automáticamente la posición. ____________________________________________________________________
   |