web-dev-qa-db-ja.com

GoogleマップをHTMLメールに埋め込む方法はありませんか?

かなりの量の research を実行し、 static maps API などのいくつかの「解決策」を見つけて、単にGmapへのリンクを送信しました。しかし、実際に誰かにGoogleマップを送信する方法はありませんか?

36
Ben Racicot

あなた自身の研究では、ほとんどのメールクライアントがiFrameを実行していないことがわかりました。それで、何ができると思いますか?

ちなみにこれは意図的なものです。 iFrameとJavaScriptは、メールサービスが対処したくないセキュリティリスクです。

あなたの最善の策は、地図の静的な画像を取得し、HTML電子メールの画像として embed にすることです。 Googleマップの「フル」マップへのハイパーリンクを配置します。

Gmailでこれを手動で行うには:

  1. http://staticmapmaker.com/google/ などに移動します
  2. 場所を入力してください
  3. マップ画像をクリップボードにコピーしてメールに貼り付けます
  4. 「Googleマップへのリンクを含む地図」セクションのアンカーのhrefをコピーします
  5. 画像全体を選択します(画像の右側にカーソルを置き、 shift + left arrow
  6. 押す ctrl+k 画像をハイパーリンクする
  7. 手順4のURLを[Webアドレス]フィールドに貼り付けます
32
Neil McGuigan

静的イメージマップを作成し、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");
12

マップパラメータ(Lat、Lgt ..など)を含むリンクを、REST apisでマップのパラメータを受け入れるサーバー上のHTMLページに電子メールで送信し、完全なそれ以外の場合、唯一の選択肢は静的マップの概念を使用することです。または、両方を使用して、静的マップ画像を送信し、その下にパラメータを受け入れ、マップを準備し、ユーザーが実際のマップを表示するHTMLページへのリンクを送信することができます好む。

0
Facimus