微信公众号搜"智元新知"关注
微信扫一扫可直接关注哦!

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

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

 

首先去申请个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,我试着调用,不出地图,不知什么原因。估计用这个,能提高反应速度。

版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。

相关推荐