Подтвердить что ты не робот

Невозможно ли внедрить Google Map в HTML-письмо?

Я провел много исследований и нашел несколько "решений", таких как static maps API и просто отправить ссылку на Gmap. Однако действительно ли нет способа отправить кому-то карту Google?

4b9b3361

Ответ 1

Ваши собственные исследования показывают, что большинство почтовых клиентов не поддерживают iFrames, так что вы думаете, что можно сделать?

Это нарочно, кстати. iFrames и JavaScript - это угрозы безопасности, с которыми почтовые службы не хотят иметь дело.

Лучше всего получить статичное изображение карты и вставить его в виде изображения в электронное письмо в формате HTML. Поместите гиперссылку на "полную" карту в Google Maps.

Чтобы сделать это вручную в Gmail:

  1. Перейдите на страницу http://staticmapmaker.com/google/ или аналогичную.
  2. Введите местоположение
  3. Скопируйте изображение карты в буфер обмена и вставьте его в электронное письмо.
  4. Скопируйте href якоря в разделе "Карта со ссылкой на Google Maps"
  5. Выделите все изображение (наведите курсор на изображение справа и нажмите shift + left arrow
  6. Нажмите ctrl + k, чтобы создать гиперссылку на изображение.
  7. Вставьте URL из шага 4 в поле веб-адреса

Ответ 2

Вы можете создать статическую карту изображения и отправить ее по электронной почте, сделав ее в Perl: https://metacpan.org/pod/Geo::Google::StaticMaps::V2

или просто напрямую через Google: https://developers.google.com/maps/documentation/static-maps/

Это должно быть что-то вроде этого в HTML-части сообщения электронной почты:

<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"/>

Я только что попробовал, и это работает как шарм.

Пример кода:

#!/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");

Ответ 3

Вы можете отправить ссылку, содержащую параметры карты (Lat, Lgt и т.д.), По электронной почте на HTML-страницу вашего сервера, которая принимает параметры для карты с REST apis и отображает полную карту в браузере. В противном случае единственный выбор - использовать концепцию статической карты. Можно использовать и то и другое. Отправьте изображение статической карты, а ниже ссылку на страницу HTML, которая принимает параметры, подготавливает карту и отображает реальную карту, если пользователь этого пожелает.