2

有没有人成功让 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 播放器没有加载。

你们有什么想法吗?

问候,

西蒙

4

2 回答 2

5

Have you looked at the DelphiMaps project? Description:

The DelphiMaps library is a set of Delphi components that aim to make it easy for developers to incorporate GIS functionality in their applications.

The package contains wrappers for:

  • Google Maps API (v3)
  • Google/Openstreetmap Static Maps
  • Google Geocoding API
  • Google Directions API
  • Google StreetView

Rodrigo Ruz posted a fully functional example on his blog in 2010.

于 2012-07-09T14:08:45.107 回答
3

自从我用 Delphi 编写任何东西以来已经有很长时间了,但如果我没记错的话,TWebBrowser 控件是您系统上任何版本的 Internet Explorer 的浏览器部分。“浏览器部分”是指 HTML 渲染器和 Javascript 解释器,但称为 Internet Explorer 的完整程序远不止这些。它还具有插件,例如 Flash,以及在需要时加载这些插件的一些管理逻辑。

我的建议是,您可以使用 V3 API 创建一个简单的页面,而不是加载 maps.google.com,该页面在没有 Flash 的情况下实现了街景(纯 Javascript)。尝试将此页面加载到您的 TWebBrowser 控件中,然后将街景小人放在不错的地方:

http://maps.forum.nu/v3/gm_streetview_V3.html

于 2012-07-09T14:21:24.143 回答