delphi 调用百度地图api

一、调用javascript的方法

两种:

第一种:采用自编函数的方法

function ExecuteJavaScript(WebBrowser:TWebBrowser; Code: string):Variant;

var //发送脚本

Document:IHTMLDocument2;

Window:IHTMLWindow2;

begin

// execute javascript in webbrowser

Document:=WebBrowser.Document as IHTMLDocument2;

if not Assigned(Document) then Exit;

Window:=Document.parentWindow;

if not Assigned(Window) then Exit;

try

Result:=Window.execScript(Code,'JavaScript');

except

on E:Exception do raise Exception.Create('Javascript error '+E.Message+' in: '#13#10+Code);

end;

end;

第二种:直接调用WebBrowser内置方法:

WebBrowser1.OleObject.document.parentWindow.方法名();

二、百度API的调用

制作一个HTML文件

<html>

<head>

<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />

<meta name="viewport" content="initial-scale=1.0, user-scalable=no"/>

<script type="text/javascript" src="http://api.map.baidu.com/api?v=2.0&ak=你的秘钥"></script>

<title>百度地图测试</title>

<style type="text/css">

body, html,#allmap {width: 100%;height: 100%;overflow: hidden;margin:0;}

</style>

</head>

<body>

<div > </div>

</body>

</html>

<script type="text/javascript">

function setcenter(areaname){ //设置新的地图中心

map.centerAndZoom(areaname,10);

}

var map = new BMap.Map("allmap"); //js 主程序,调起百度地图

var point = new BMap.Point(116.404, 39.915);

map.centerAndZoom(point,5);

map.enableScrollWheelZoom();

</script>

三、DELPHI 中的实现方法:

WebBrowser1.Navigate(ExtractFilePath(Application.ExeName)+'bmap.html');

try

ExecuteJavaScript(WebBrowser1,'setcenter("'+CenterCityname+'");');

except

on E:Exception do showmessage(E.Message);

end;

{

或者:

WebBrowser1.OleObject.document.parentWindow.setcenter(CenterCityname);

}