DELPHI调用百度定位API(根据IP获取城市及GPS信息等)

缘由:因智能助理在用户说出“天气如何”时,需要自动获取城市,所以这里需要根据用户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     #返回状态码
    }
时间: 2024-10-03 23:16:23

DELPHI调用百度定位API(根据IP获取城市及GPS信息等)的相关文章

C#调用百度高精度IP定位API通过IP获取地址

API首页:http://lbsyun.baidu.com/index.php?title=webapi/high-acc-ip 1.申请百度账号,创建应用,获取密钥(AK) http://lbsyun.baidu.com/apiconsole/key 启用服务:,可以根据自己需求来钩选,这里先全选了. 请求校验方式:IP白名单校验/SN检验,这里选择IP白名单校验.即在下面填上你访问机器的IP地址.如(114.114.114.114). 单击提交,获得AK 2.获取方式: 服务地址: http

delphi 调用百度地图api

一.调用javascript的方法 两种: 第一种:采用自编函数的方法 function ExecuteJavaScript(WebBrowser:TWebBrowser; Code: string):Variant;var //发送脚本Document:IHTMLDocument2;Window:IHTMLWindow2;begin// execute javascript in webbrowserDocument:=WebBrowser.Document as IHTMLDocument2

java调用百度地图API根据地理位置获取经纬度

public Map<String, BigDecimal> getLatAndLngByAddress(String addr){ String address = ""; String lat = ""; String lng = ""; try { address = java.net.URLEncoder.encode(addr,"UTF-8"); } catch (UnsupportedEncodingE

教程-Delphi调用百度地图API(XE8+WIN7)

unit U_map; interface //---------------------------------------------------// //----------COPY BY 无言 QQ:4252181 -----------------// //---------------------------------------------------// uses Windows, Messages, SysUtils, Variants, Classes, Graphics,

百度地图API的IP定位城市和浏览器定位(转)

百度地图API提供了Geolocation 和 LocalCity两个服务类. 这俩API可以分别供用户在JavaScript中进行定位和城市确认. 1 本质上,Geolocation这个类是使用了支持HTML5浏览器提供的Geolocation API 来进行定位的.目前Internet Explorer 9.Firefox.Chrome.Safari 以及 Opera 支持地理定位(因为他们支持HTML5). 2 本质上,LocalCity这个类是利用用户IP地址去百度数据库里查询得到IP所

PHP利用百度地图API进行IP定位和GPS定位

最近在做一个手机端的webapp地图应用,而核心内容当然是定位了,但是定位的话有几种方式,IP定位,GPS定位,基站定位(这个貌似webapp用不了), 那么剩下核心的gps定位和ip定位了,我们知道,html5有定位API,但是该API拿到的GPS数据是硬件坐标,无法直接显示在地图上. 后来上百度LBS云看到有地图IP定位API和GPS坐标转换API,地址:http://developer.baidu.com/map/ 百度地图API的调用需要申请KEY,这里就不具体介绍了,直接贴上本人写了两

HTML5调用百度地图API进行地理定位实例

自从HTML5的标准确定以后,越来越多的网站使用HTML5来进行开发.虽然对HTML5支持的浏览器不是很多,但是依然抵挡不了大伙对HTML5开发的热情.今天为大家带来的是使用HTML5调用百度地图API进行地理定位实例.请看下面代码: <!DOCTYPE html> <html> <title>HTML5调用百度地图API进行地理定位实例</title> <head> <meta http-equiv="Content-Type&

HTML5 调用百度地图API地理定位

<!DOCTYPE html> <html> <title>HTML5 HTML5 调用百度地图API地理定位实例</title> <head> <meta http-equiv="Content-Type" content="text/html; charset=UTF-8" /> <script type="text/javascript" src="ht

delphi调用百度语音识别REST API

delphi调用百度语音识别REST API-20160616-感谢 魔术猫 和 DelphiTeacher 兄的帮助解决了返回中文乱码的问题!-注:语音的录音格式目前只支持评测8k/16k采样率16bit位深的单声道语音 压缩格式支持:pcm(不压缩).wav.opus.speex.amr.x-flac var sUrl, sLan, cuid, apiKey, secretKey, token, sR: string;  response: TStringStream; Stream: TF