有没有人让StreetView在TWebBrowser控件中显示成功?
我想以编程方式构建一个Url,并以简单的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播放器没有加载。
你们有什么想法吗?
此致
西蒙
答案 0 :(得分:5)
你看过DelphiMaps project了吗?说明:
DelphiMaps库是一组旨在制作的Delphi组件 开发人员可以轻松地将GIS功能集成到其中 应用
包中包含以下包装:
- Google Maps API(v3)
- Google / Openstreetmap静态地图
- Google地理编码API
- Google Directions API
- Google StreetView
Rodrigo Ruz在2010年的博客上发布了fully functional example。
答案 1 :(得分:3)
我用Delphi写了很长时间但是如果我没记错的话,TWebBrowser控件是你系统上任何版本的Internet Explorer的浏览器部分。 “浏览器部分”表示HTML呈现器和Javascript解释器,但称为Internet Explorer的完整程序不止于此。它还有插件,如Flash,以及一些管理逻辑,可在需要时加载这些插件。
我建议您不要加载maps.google.com,而是可以使用V3 API创建一个简单的页面,该页面实现了没有Flash的街景视图(纯Javascript)。 尝试将此页面加载到您的TWebBrowser控件中,然后将pegman放到某个好处: