博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
DELPHI调用百度定位API(根据IP获取城市及GPS信息等)
阅读量:5218 次
发布时间:2019-06-14

本文共 1445 字,大约阅读时间需要 4 分钟。

 

缘由:因智能助理在用户说出“天气如何”时,需要自动获取城市,所以这里需要根据用户IP自动获取城市,所以有了这篇文章 QQ508882988

//根据百度API,根据来访IP自动获取出该IP所在的位置及更多信息,参数IP为空时,会使用当前访问者的IP地址作为定位参数

//sServerAK为用户密钥 string 必选,在lbs云官网注册的access key,作为访问的依据,定期从http://lbsyun.baidu.com/apiconsole/key获取
//参考http://lbsyun.baidu.com/index.php?title=webapi/ip-api#.E6.9C.8D.E5.8A.A1.E5.9C.B0.E5.9D.80
//function GetLocInfByIP_BaiDu(sIP, sServerAK: string): string;

uses SuperObject; 

function GetLocInfByIP_BaiDu(sIP, sServerAK: string): string;

  var sUrl, ak, sIPS, sR: string;
  vJson, vj: ISuperObject;
  response: TStringStream;
  FHttp: TIdHTTP;
begin
  sR := '';
  ak := '9fe55cc6597c6b331754b19a048accd4';
  if sIP <> '' then begin
    sIPS := '&ip='+ sIP;
  end else begin
    sIPS := '';
  end;
  sUrl := 'http://api.map.baidu.com/location/ip?ak='+sServerAK + sIPS;
  response := TStringStream.create('', tencoding.utf8);
  FHttp := TIdHttp.Create(nil);
  sR := FHttp.Post(sUrl, response);
  FHttp.Free;
  vJson := SO((sr));

  //我这里只用到城市,所以如下取出,各位客官可自行根据情况获取

  result := SO(SO(vJson.S['content']).S['address_detail']).S['city'];
end;

 

返回的结果json串形如下:

{          address: "CN|北京|北京|None|CHINANET|1|None",   #地址          content:       #详细内容          { address: "北京市", #简要地址 address_detail: #详细地址信息 { city: "北京市", #城市 city_code: 131, #百度城市代码 district: "", #区县 province: "北京市", #省份 street: "", #街道 street_number: "" #门址 }, point: #百度经纬度坐标值 { x: "116.39564504", y: "39.92998578" } }, status: 0 #返回状态码 }

转载于:https://www.cnblogs.com/fireboxsoft/p/5654987.html

你可能感兴趣的文章
B2321 [BeiJing2011集训]星器 数学&&物理
查看>>
201571030319 四则运算
查看>>
RestTemplate 调用本地服务 connection refused
查看>>
.NET方向高级开发人员面试时应该事先考虑的问题
查看>>
并发队列ConcurrentLinkedQueue和阻塞队列LinkedBlockingQueue用法
查看>>
台达PLC modbus 不支持04功能码
查看>>
python学习笔记--装饰器
查看>>
发布一个JavaScript工具类库jutil,欢迎使用,欢迎补充,欢迎挑错!
查看>>
discuz 常用脚本格式化数据
查看>>
Luogu P1991 无线通讯网
查看>>
(转载) 好的程序员到底好在哪里?
查看>>
MS CRM 2011 创建基于Fetch的报表 -- 进阶版
查看>>
zabbix 监控zookeeper
查看>>
trace与代码跟踪服务
查看>>
Fire!
查看>>
洛谷P2777
查看>>
Ajax
查看>>
VC++中CEdit控件实现回车换行
查看>>
bzoj2338[HNOI2011]数矩形 计算几何
查看>>
CodeForces - 732A Buy a Shovel 解题
查看>>