私はDelphi 10 SeattleのGoogle Maps APIを利用しています。Googleマップにローカル画像を埋め込むことはできますか?
procedure TfrmMain.FormCreate(Sender: TObject);
var
aStream: TMemoryStream;
begin
WebBrowser1.Navigate('about:blank');
if Assigned(WebBrowser1.Document) then
begin
aStream := TMemoryStream.Create;
try
aStream.WriteBuffer(Pointer(HTMLStr)^, Length(HTMLStr));
aStream.Seek(0, soFromBeginning);
(WebBrowser1.Document as IPersistStreamInit)
.Load(TStreamAdapter.Create(aStream));
finally
freeandnil(aStream);
end;
HTMLWindow2 := (WebBrowser1.Document as IHTMLDocument2).parentWindow;
end;
fContainer := TExternalContainer.Create(WebBrowser1);
end;
これにより、IHtmlDocument2インターフェイスのインスタンスを使用してJavaScriptをMap JSに呼び出すことができます。
procedure TfrmMain.btnStartPointClick(Sender: TObject);
begin
HTMLWindow2.execScript(Format('EmbedImageAtLatLng(%s,%s, %s)',[edtLat.Text,edtLon.Text, edtImageName.txt]), 'JavaScript');
end;
私のクライアントは、特定の場所に特定の画像を投稿して作業者が使用したいと考えています。これは可能ですか?
注:この画像はローカル画像であり、配信されません。それは単に渡されます。
実際に、私はbmpをまっすぐに渡すことができました。ちょうど少しマッサージを受けた。 ありがとう –
これは素晴らしい@MetaMusselです!あなたはあなたのソリューションを共有しますか?少なくともGMapsにイメージを「注入」する部分。私は、[カスタムオーバーレイを追加する](https://developers.google.com/maps/documentation/javascript/examples/overlay-simple)で、ソースイメージとしてbase64でエンコードされたイメージを設定しようとしました。他のオプションも試してみましたが、そのすべてがURIの代わりにbase64のエンコードされたイメージを実装していました。しかし、Base64でエンコードされた画像のサイズが元のサイズに比べて30%(またはそれ以上)に拡大されているのは嫌です。 –