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& ... 
随机推荐
- 四种常见的 POST 提交数据方式--good
			HTTP/1.1 协议规定的 HTTP 请求方法有 OPTIONS.GET.HEAD.POST.PUT.DELETE.TRACE.CONNECT 这几种.其中 POST 一般用来向服务端提交数据,本文 ... 
- 使用高性能xml序列化框架jibx作为spring mvc的xml view
			package org.springframework.web.servlet.view.xml; import java.io.ByteArrayOutputStream; import java. ... 
- openGL 初试 绘制三角形 和添加鼠标键盘事件
			code: #include <gl/glut.h> #include <stdlib.h> void render(void); void keyboard(unsigned ... 
- VC中的Attach和Detach
			CWnd,CDC, Cxxx等都是MFC的类,这些类提供了很多成员函数来执行系统调用等操作,但是核心的类成员数据都是 句柄,(包括窗口句柄,DC句柄,线程句柄等). m_hWnd m_hDC m ... 
- cp | mv | rm
			linux下文件的复制.移动与删除命令为:cp,mv,rm 一.文件复制命令cp 命令格式: cp [-adfilprsu] 源文件(source) 目标文件(destination) cp [opt ... 
- [转]ArcGIS移动客户端离线地图的几种解决方案
			原文地址:http://blog.chinaunix.net/uid-10914615-id-3023158.html 移动GIS中,通常将数据分为两大类:basemap layer和operatio ... 
- Ubuntu 14.04 下使用IDEA开发Spark应用 入门
			网上有很多教程,有用sbt ,也有不用sbt的,看的头大,搞了半天,终于运行成功一个例子,如下: 1.官网下载http://www.jetbrains.com/idea/download/ Inter ... 
- 自动测试工具SilkTest全面介绍
			象交互,并最终记录测试结果,用户可以根据这些测试结果来判断测试成功还是失败. 4Test 脚本语言 和绝大多数自动化测试工具一样, SilkTest 可以自动捕捉,检测和重复用户交互的操作从而驱动测试 ... 
- RTNETLINK answers: Operation not permitted
			如果出现:RTNETLINK answers: Operation not permitted,那是因为没有权限. 解决办法:su,输入root密码. 
- Hibernate问题之'hibernate.dialect' not set
			继前文:Hibernate4中buildSessionFactory方法废弃问题.后 继续有问题.本来之前好好的项目,用了这种新的方法后发现问题. 出现 Connection cannot be n ... 
