用户登录

街道查询

1. 用户验证

根据不同的请求来源,该 API 使用不同的验证方式。如果请求来自第三方厂商(即经由开发者服务器中转),驴博士会验证Vend ID 与 来源 IP;如果请求来自终端设备,驴博士会验证 API Key。

1.1 Vend ID 验证

开发者注册 Vend ID: http://lbs.org.cn/apireg.php

开发者需要提供固定IP。

1.2 API Key 验证

开发者注册 API Key: http://lbs.org.cn/apireg.php(勾选“客户端直连模式 ”)

2.协议

2.1方法

HTTP POST http://lbs.org.cn/api/lbs/geo.php

2.2上行

<locationinfo ver='(string)' vendid='(string)'>
  <location lat='(double)' lon='(double)' />
</locationinfo>

<locationinfo ver='(string)' key='(string)'>
  <location lat='(double)' lon='(double)' />
</locationinfo>

其中,

  • locationinfo.ver 属性:版本号,当前为 2,(早期版本: 1.0);

  • locationinfo.vendid 属性:Vend ID;

  • locationinfo.key 属性:API Key;

  • location.lat 属性:纬度;

  • location.lon 属性:经度;

2.3下行

<?xml version='1.0' encoding='utf-8'?>
<locationinfo>
<citycode/>
<city/>
<road/>
<road2/>
<famous_poi/>
<address/>
</locationinfo>

<locationinfo err='(integer)'>(Error Message)</locationinfo>

其中,

  • locationinfo.err 属性是结果代码,0表示成功,其它表示错误,可能的错误代码及相应的错误提示信息:
    • 1 - 查不到指定信息。
    • 2 - 请求无效,一般是参数错误导致的。
    • 4 - 用户验证失败。
    • 5 - 服务器内部错误。
  • locationinfo.citycode 是城市代码,比如连云港的城市代码是 320700;
  • locationinfo.city 是城市名称,可能包含省、区,比如“江苏省 连云港市”;
  • locationinfo.road1/2 是附近道路名称,比如“朝阳中路”;
  • locationinfo.famous_poi 是附近知名地点的名称,如某某大厦;
  • locationinfo.address 是非格式化的地址描述,如"江苏省苏州市工业园区 高和路附近";

说明:实际当中,locationinfo 的以上子节点可能有所缺失,或者节点存在但值为空,应用程序需检查这些字段信息的可用性。

2.4示例

在 Linux 终端用 curl 命令请求(您可能需要替换POST参数中的 locationinfo.key 属性):

curl http://lbs.org.cn/api/lbs/geo.php -d "<locationinfo ver='2' key='8746bbc0f1e77d913e1a3beb504b93fa'><location lat='31.2929' lon='120.6817'/></locationinfo>"

得到如下应答:

<?xml version="1.0" encoding="UTF-8"?> 
<locationinfo>
<citycode>320500</citycode>
<city>江苏省 苏州市</city>
<road1>星洲街</road1>
<road2>高和路</road2>
<address>江苏省 苏州市高和路(星州街 附近)</address>
</locationinfo>