¿No hay forma de incrustar un mapa de Google en un correo electrónico HTML?


He hecho una buena cantidad de investigación y he encontrado varias "soluciones" como la API static maps y simplemente enviando un enlace a un Gmap. Sin embargo, ¿realmente no hay manera de enviar a alguien un mapa de Google?

Author: BenRacicot, 2014-06-22

2 answers

Bueno, su propia investigación muestra que la mayoría de los clientes de correo no hacen iFrames, así que ¿qué cree que se puede hacer?

Esto es a propósito, por cierto. iFrames y JavaScript son riesgos de seguridad que los servicios de correo no quieren tratar.

Lo mejor es obtener una imagen estática del mapa y incrustarla como una imagen en un correo electrónico HTML. Ponga un hipervínculo en él al mapa "completo" en Google Maps.

Para hacer esto manualmente en Gmail:

  1. Ir a http://staticmapmaker.com/google / o similar
  2. Introduzca la ubicación
  3. Copie la imagen del mapa en su portapapeles y péguela en un correo electrónico
  4. Copia el href del ancla en la sección "Mapa con enlace a Google Maps"
  5. Seleccione la imagen completa (coloque el cursor a la derecha de la imagen y presione shift + flecha izquierda
  6. Pulse ctrl+k para el hipervínculo de imagen
  7. Pegue la url del paso 4 en el campo de dirección web
 30
Author: Neil McGuigan,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2017-05-23 12:26:15

Puede crear un mapa de imagen estática y enviarlo por correo electrónico, haciéndolo en Perl: https://metacpan.org/pod/Geo::Google::StaticMaps::V2

O simplemente directamente por Google: https://developers.google.com/maps/documentation/static-maps /

Debería ser algo como esto en la parte HTML del correo electrónico:

<img src="http://maps.googleapis.com/maps/api/staticmap?size=800x600&maptype=hybrid&scale=2&format=png8&sensor=false&path=geodesic%3Atrue%7C-6.9325%2C+37.3916666666667%7C-6.9325%2C+37.3933333333333%7C-6.93388888888889%2C+37.3933333333333%7C-6.93388888888889%2C+37.3916666666667%7C-6.9325%2C+37.3916666666667&zoom=10" width="800" height="600"/>

Acabo de probar y funciona como un encanto.

Código de ejemplo:

#!/usr/bin/perl 
use strict;
use warnings;
use feature ':5.10';
use utf8;
use Geo::Converter::dms2dd qw { dms2dd };
use Geo::Google::StaticMaps::V2;
my $map = Geo::Google::StaticMaps::V2->new(
width    => 800,
height   => 600,
sensor   => 0,
scale    => 2,
zoom     => 16,
format   => "png8",
type     => "hybrid"
);

binmode(STDOUT, ":encoding(UTF-8)");
binmode(STDIN, ":encoding(UTF-8)");
$| = 1;

my %c;

$c{1} = [ '-6 55 57.00', '37 23 30.00' ];
$c{2} = [ '-6 55 57.00', '37 23 36.00' ];
$c{3} = [ '-6 56 02.00', '37 23 36.00' ];
$c{4} = [ '-6 56 02.00', '37 23 30.00' ];
$c{5} = [ '-6 55 57.00', '37 23 30.00' ];

my @location;

foreach my $key (sort keys %c) {
$c{$key}[0]  = dms2dd ({value => $c{$key}[0], is_lat => 1});
$c{$key}[1]  = dms2dd ({value => $c{$key}[1], is_lon => 1});
push(@location, "$c{$key}[0], $c{$key}[1]");
}


my $path = $map->path(locations=>[ @location ], geodesic=>1);
print $map->url;
$map->image;
$map->save("/home/data1/protected/map.png");
 11
Author: Mr. Rosario Maddox,
Warning: date(): Invalid date.timezone value 'Europe/Kyiv', we selected the timezone 'UTC' for now. in /var/www/agent_stack/data/www/ajaxhispano.com/template/agent.layouts/content.php on line 61
2016-02-12 07:21:47