有没有人成功地将StreetView显示在TWebBrowser控件中?
我想以编程方式构建一个网址,并以简单的Delphi形式显示它。
到目前为止,这是我需要的表格:
unit frmSView;
interface
uses
Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms,
Dialogs, OleCtrls, SHDocVw, StdCtrls;
type
TfrmStreetView = class(TForm)
browserStreetView: TWebBrowser;
txtAddress: TEdit;
procedure txtAddressExit(Sender: TObject);
procedure ShowSV(Lat: string; Lon: string);
private
// private declarations
public
// public declarations
end;
var
frmStreetView: TfrmStreetView;
implementation
{$R *.dfm}
procedure TfrmStreetView.ShowSV(Lat: string; Lon: string);
var
Addr: string;
Flags: OleVariant;
begin
Addr := 'http://maps.google.com/maps?q=&&layer=c&&cbll=' + Lat + ',' + Lon + '&&cbp=12,0,0,0,0&&output=svembed';
browserStreetView.Navigate(Addr, Flags, Flags, Flags, Flags);
txtAddress.Text := Addr;
ShowModal;
end;
procedure TfrmStreetView.txtAddressExit(Sender: TObject);
var
Flags: OleVariant;
begin
browserStreetView.Navigate(txtAddress.Text, Flags, Flags, Flags, Flags);
end;
end.
表单显示时:
如果该位置没有街景信息,则可以获取常规地图视图。
如果有街景信息(已在另一个浏览器窗口中验证),则仅显示灰色屏幕。
我猜测Flash播放器未加载。
你们有什么主意吗?
问候,
西蒙
最佳答案
自从我用Delphi编写任何东西以来已经有很长时间了,但是如果我没记错的话,TWebBrowser控件是系统上任何版本的Internet Explorer的浏览器部分。 “浏览器部分”指的是HTML渲染器和Javascript解释器,但是称为Internet Explorer的完整程序不止于此。它还具有插件(例如Flash)和一些管理逻辑,以便在需要时加载这些插件。
我的建议是,不用加载maps.google.com,您就可以使用V3 API创建一个简单的页面,该API实现不带Flash(纯Javascript)的街景视图。
尝试将此页面加载到TWebBrowser控件中,然后将衣夹人放在合适的位置:
http://maps.forum.nu/v3/gm_streetview_V3.html
关于delphi - TWebBrowser中的Google街景 View ,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/11396546/