分享

Delphi XE6 通过JavaScript API调用百度地图

 windblast 2017-05-30

Delphi XE6 通过JavaScript API调用百度地图

(2014-04-22 08:56:54)
标签:

it

delphixe6

分类: DelphiXE6

参考昨天的内容,有朋友还是问如何调用百度地图,也是,谁让咱都在国内呢,没办法,你懂的。

 

首先去申请个Key,然后看一下百度JavaScript的第一个例子:http://developer.baidu.com/map/jsdemo.htm

下一步,就是把例子中的代码,移动TWebBrower中。

 

unit Unit3;

interface

uses
  System.SysUtils, System.Types, System.UITypes, System.Classes, System.Variants,
  FMX.Types, FMX.Controls, FMX.Forms, FMX.Graphics, FMX.Dialogs, FMX.WebBrowser,
  FMX.StdCtrls;

type
  TForm3 = class(TForm)
    WebBrowser1: TWebBrowser;
    Button1: TButton;
    procedure FormCreate(Sender: TObject);
    procedure Button1Click(Sender: TObject);
  private
    { Private declarations }
  public
    { Public declarations }
  end;

var
  Form3: TForm3;

const
s='';//等于网页内容,我贴上来,就乱了,只好说明在这里。
s1=

'var map = new BMap.Map("allmap");'           
+'var point = new BMap.Point(116.404, 39.915);'   
+'map.centerAndZoom(point,15);'                    

+'map.enableScrollWheelZoom();'                           
;//要执行的JavaScript代码


implementation

{$R *.fmx}

procedure TForm3.Button1Click(Sender: TObject);
begin
 webbrowser1.EvaluateJavaScript(s1);//对网页执行JavaScript代码.
end;

procedure TForm3.FormCreate(Sender: TObject);
begin
  webbrowser1.LoadFromStrings(s,'http://api.map.baidu.com');//调入网页

end;

end.

 

注意的问题:

1.只有FMX.WebBrowser支持EvaluateJavaScript及Loadfromstring方法,VCL的TWebBrowser是不支持的。

2.FMX.WebBrowser只支持Android IOS,不支持Win32

3.LoadFromStrings调用网页时,要指定第二个参数,不然不显示地图

遗憾:

感觉地图的显示速度不好,点击按钮时,会闪一下,归纠于FMX的性能还是这种调用方式的原因产生的?还不清楚。

最后,附上截图:

Delphi <wbr>XE6 <wbr>通过JavaScript <wbr>API调用百度地图

后记:

baidu为手机提供了专用的Javascript API,叫极速XXX,我试着调用,不出地图,不知什么原因。估计用这个,能提高反应速度。


 

    本站是提供个人知识管理的网络存储空间,所有内容均由用户发布,不代表本站观点。请注意甄别内容中的联系方式、诱导购买等信息,谨防诈骗。如发现有害或侵权内容,请点击一键举报。
    转藏 分享 献花(0

    0条评论

    发表

    请遵守用户 评论公约

    类似文章