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的性能还是这种调用方式的原因产生的?还不清楚。
最后,附上截图:
后记:
baidu为手机提供了专用的Javascript API,叫极速XXX,我试着调用,不出地图,不知什么原因。估计用这个,能提高反应速度。
http://blog.sina.com.cn/s/blog_44fa172f0101ri82.html
Delphi XE6 通过JavaScript API调用百度地图的更多相关文章
- JavaScript调用百度地图
		
在网站开发过程中,经常会调用到地图,百度地图提供Web开发.Android开发.iOS开发API及SDK,百度地图JavaScript API可帮助您在网站中构建功能丰富.交互性强的地图应用,本篇博客 ...
 - 苹果手机 微信调用百度地图Javascript API 频繁闪退问题
		
最近在网页中调用百度地图API js大众版,但是在IOS8系统中,缩放的时候频繁闪退,安卓手机没有这个问题! 在网上查询了下,有网友回答说不要频繁的去new marker,而是初始化话一定量的mark ...
 - 在XAF(ASP.NET)中以ListEditor的形式调用百度地图API
		
因为项目需要,在系统中使用地图显示设备的地理位置.考虑过ArgGIS,Bing和Baidu地图.本来想用ArgGIS,看教程嫌麻烦.所以还是用Web地图吧.Bing的话还要申请个key,没心情.百度地 ...
 - 调用百度地图Api实现的查看地图功能的小插件
		
1. 功能 bMap.js 可根据地理位置调用出百度地图,采用弹出框形式 2.用法 var city = '青岛市'; var address = '香港中路'; bMap.init({ city : ...
 - 【c#】Form调用百度地图api攻略及常见问题
		
首先,在Form中调用百度地图api,我们需要使用webbrowser控件,这个在前面的文章中已经讲过了,可以参照(http://blog.csdn.net/buptgshengod/article/ ...
 - Node.js调用百度地图Web服务API的Geocoding接口进行点位反地理信息编码
		
(从我的新浪博客上搬来的,做了一些修改.) 最近迷上了node.js以及JavaScript.现在接到一个活,要解析一个出租车点位数据的地理信息.于是就想到使用Node.js调用百度地图API进行解析 ...
 - HTML5调用百度地图API获取当前位置并直接导航目的地的方法
		
<!DOCTYPE html> <html lang="zh-cmn-Hans"> <meta charset="UTF-8&quo ...
 - HTML5 调用百度地图API地理定位
		
<!DOCTYPE html> <html> <title>HTML5 HTML5 调用百度地图API地理定位实例</title> <head&g ...
 - 跨平台移动开发_PhoneGap  使用Geolocation基于所在地理位置坐标调用百度地图API
		
使用Geolocation基于所在地理位置坐标调用百度地图API 效果图 示例代码 <!DOCTYPE html> <html> <head> <title& ...
 
随机推荐
- inline-block布局方式
			
刚研究了一下inline-block布局方式 inline-block布局方式是一种比float浮动更优的一种布局方式. 一个超简单的demo html: <!doctype html> ...
 - mac10.9 设置vim tab
			
vimrc系统文件目录 /usr/share/vim 在vimrc中添加以下代码后,重启vim即可实现按TAB产生4个空格:set ts=4 (注:ts是tabstop的缩写,设TAB宽4个空格)s ...
 - nginx上传模块nginx_upload_module和nginx_uploadprogress_module模块进度显示,如何传递GET参数等。
			
ownload:http://www.grid.net.ru/nginx/download/nginx_upload_module-2.2.0.tar.gzconfigure and make : . ...
 - MFC 遍历FTP服务器目录相关
			
CInternetSession* pSession; pSession = new CInternetSession; //构造新的连接 CFtpConnection* pFtpCon; pFtp ...
 - JVM的生命周期——JVM之二
			
一.首先分析两个概念 JVM实例和JVM执行引擎实例 (1)JVM实例对应了一个独立运行的java程序——进程级别 一个运行时的Java虚拟机(JVM)负责运行一个Java程序. 当启动一个Java程 ...
 - Android实现ListView或GridView首行/尾行距离屏幕边缘距离
			
直接上关键属性: 设置ListView或GridView的android:clipToPadding = true, 然后通过paddingTop和paddingBottom设置距离就好了.
 - win7远程工具mstsc.exe
			
相信很多人都用过类似QQ远程这样的远程工具,其实自xp开始windows就自带了远程工具mstsc.exe. 我只是介绍了如何使用远程工具登入别人的电脑. 首先,在开始->运行->msts ...
 - spark aggregate
			
该函数官方的api,说的不是很明白: aggregate(zeroValue, seqOp, combOp) Aggregate the elements of each partition, and ...
 - Mysql 多表查询
			
文章转载的:http://www.cnblogs.com/BeginMan/p/3754322.html 一.Join语法概述 join 用于多表中字段之间的联系,语法如下: ... FROM tab ...
 - mysql 1449 : The user specified as a definer ('montor'@'%') does not exist
			
grant all privileges on *.* to root@"%" identified by "."; flush privileges;