Delphi 在TWebBrowser中搜索谷歌街景

Delphi 在TWebBrowser中搜索谷歌街景,delphi,google-maps,twebbrowser,google-street-view,Delphi,Google Maps,Twebbrowser,Google Street View,有没有人成功地让街景显示在TWebBrowser控件中 我希望以编程方式构建Url,并以简单的Delphi形式显示它 以下是我到目前为止对该表单的了解: unit frmSView; interface uses Windows, Messages, SysUtils, Variants, Classes, Graphics, Controls, Forms, Dialogs, OleCtrls, SHDocVw, StdCtrls; type TfrmStreetView =

有没有人成功地让街景显示在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播放器没有加载

你们有什么想法吗

问候,

西蒙

你看了那本书了吗?说明:

DelphiMaps库是一组Delphi组件,旨在 开发人员可以很容易地将GIS功能合并到他们的应用程序中 应用程序

该包包含以下内容的包装:

  • 谷歌地图API(v3)
  • Google/Openstreetmap静态地图
  • 谷歌地理编码API
  • 谷歌方向API
  • 谷歌街景

Rodrigo Ruz于2010年在他的博客上发表了一篇文章。

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

我的建议是,不用加载maps.google.com,你可以用V3API创建一个简单的页面,它不使用Flash(纯Javascript)实现街景。 尝试将此页面加载到TWebBrowser控件中,然后将pegman放到一个好地方:


这看起来真的很好,但我只能使用Delphi 2006,它正在努力加载它:(不,我无法在加载项目时不出错。我可能需要参考一些软件包(?)但在某个地方,我对Delphi还很陌生,现在有点迷路。我已经加载了DemoStreetView项目,但它找不到DelphiMaps.Browser.dcu。@很可能您必须安装此库附带的软件包。我还没有看过,但我很愿意打赌它有一个您需要安装的软件包,可以在其中放置组件您的调色板。只有这样,您才能打开示例项目,或以其他方式使用此库。该库可能有一些说明,但如果没有,请研究如何安装组件包。我认为这正是我需要的。非常感谢:)+1ed,@nomes,由于以下原因,要多次创建
TfrmStreetView
时要小心。