有没有人成功地将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/

10-10 05:16