delphi 调用百度地图WEBSERVICE转换GPS坐标 转

百度地图的API说明

使用方法

第一步,申请密钥(ak),作为访问服务的依据;

第二步,按照请求参数说明拼写发送http请求的url,注意需使用第一步申请的ak;

第三步,接收返回的数据(json或者xml格式)。

注:本接口支持回调。

服务地址

http://api.map.baidu.com/geoconv/v1/?

组成说明:

服务参数说明

参数含义取值范围是否必须默认取值
coords源坐标

格式:经度,纬度;经度,纬度…

限制:最多支持100个

格式举例:

114.21892734521,29.575429778924;

114.21892734521,29.575429778924

ak开发者密钥
sn用户的权限签名若用户所用ak的校验方式为sn校验时该参数必须。 (sn生成算法
from源坐标类型

取值为如下:

1:GPS设备获取的角度坐标;

2:GPS获取的米制坐标、sogou地图所用坐标;

3:google地图、soso地图、aliyun地图、mapabc地图和amap地图所用坐标

4:3中列表地图坐标对应的米制坐标

5:百度地图采用的经纬度坐标

6:百度地图采用的米制坐标

7:mapbar地图坐标;

8:51地图坐标

默认为1,即GPS设备获取的坐标
to目的坐标类型

有两种可供选择:5、6。

5:bd09ll(百度经纬度坐标),

6:bd09mc(百度米制经纬度坐标);

默认为5,即bd09ll(百度坐标)
output返回结果格式

json或者xml

json

返回值说明

名称类型含义取值范围
statusinit状态码正常0,异常非0,详细见状态码说明
resultjson或者xml数组转换结果与输入顺序一致
xfloat横坐标
yfloat纵坐标

delphi 的调用过程

procedure GpsToBaiDu(Gx,Gy:real;var Bx,By:real);

const

urs1='http://api.map.baidu.com/geoconv/v1/?coords=';

urs2='&&ak=你的秘钥';//两个&&

var

url:string;

ts:Tstringstream;

jo: ISuperObject;

xy: TSuperArray;

begin

url:=urs1+floattostr(Gx)+','+floattostr(Gy)+urs2;

ts:=Tstringstream.Create;

try

IdHTTP1.Get(url,ts);

ts.Position:=0;

jo:=so(ts.DataString);

xy:=jo['result'].AsArray;

jo:=so(xy[0].AsString);

Bx:=jo['x'].AsDouble;

By:=jo['y'].AsDouble;

except //转换失败

Bx:=gx;

By:=gy;

exit;

end;

end;

百度地图的API说明

使用方法

第一步,申请密钥(ak),作为访问服务的依据;

第二步,按照请求参数说明拼写发送http请求的url,注意需使用第一步申请的ak;

第三步,接收返回的数据(json或者xml格式)。

注:本接口支持回调。

服务地址

http://api.map.baidu.com/geoconv/v1/?

组成说明:

服务参数说明

参数含义取值范围是否必须默认取值
coords源坐标

格式:经度,纬度;经度,纬度…

限制:最多支持100个

格式举例:

114.21892734521,29.575429778924;

114.21892734521,29.575429778924

ak开发者密钥
sn用户的权限签名若用户所用ak的校验方式为sn校验时该参数必须。 (sn生成算法
from源坐标类型

取值为如下:

1:GPS设备获取的角度坐标;

2:GPS获取的米制坐标、sogou地图所用坐标;

3:google地图、soso地图、aliyun地图、mapabc地图和amap地图所用坐标

4:3中列表地图坐标对应的米制坐标

5:百度地图采用的经纬度坐标

6:百度地图采用的米制坐标

7:mapbar地图坐标;

8:51地图坐标

默认为1,即GPS设备获取的坐标
to目的坐标类型

有两种可供选择:5、6。

5:bd09ll(百度经纬度坐标),

6:bd09mc(百度米制经纬度坐标);

默认为5,即bd09ll(百度坐标)
output返回结果格式

json或者xml

json

返回值说明

名称类型含义取值范围
statusinit状态码正常0,异常非0,详细见状态码说明
resultjson或者xml数组转换结果与输入顺序一致
xfloat横坐标
yfloat纵坐标

delphi 的调用过程

procedure GpsToBaiDu(Gx,Gy:real;var Bx,By:real);

const

urs1='http://api.map.baidu.com/geoconv/v1/?coords=';

urs2='&&ak=你的秘钥';//两个&&

var

url:string;

ts:Tstringstream;

jo: ISuperObject;

xy: TSuperArray;

begin

url:=urs1+floattostr(Gx)+','+floattostr(Gy)+urs2;

ts:=Tstringstream.Create;

try

IdHTTP1.Get(url,ts);

ts.Position:=0;

jo:=so(ts.DataString);

xy:=jo['result'].AsArray;

jo:=so(xy[0].AsString);

Bx:=jo['x'].AsDouble;

By:=jo['y'].AsDouble;

except //转换失败

Bx:=gx;

By:=gy;

exit;

end;

end;