基站位置查询接口代码示例概论.docx
《基站位置查询接口代码示例概论.docx》由会员分享,可在线阅读,更多相关《基站位置查询接口代码示例概论.docx(23页珍藏版)》请在冰豆网上搜索。
基站位置查询接口代码示例概论
基站位置查询接口代码示例
基站定位是指手机发射基站根据与手机的距离来计算手机坐标地理位置的一种功能,基站定位一般应用于手机用户,手机基站定位服务又叫做移动位置服务(LBS服务),它是通过电信移动运营商的网络(如GSM网)获取移动终端用户的位置信息(经纬度坐标),在电子地图平台的支持下,为用户提供相应服务的一种增值业务。
基站位置查询接口支持基站定位,通过移动联通基站的CID和LAC进行基站位置查询。
接口名称:
基站位置查询接口
接口平台:
聚合数据
接口地址:
支持格式:
json/xml
请求方式:
get/post
请求示例:
请求参数说明:
名称
类型
必填
说明
mnc
int
是
移动基站:
0联通基站:
1默认:
0
lac
int
是
小区号
cell
int
是
基站号
hex
INT
否
进制类型,16或10,默认:
10
dtype
string
否
返回的数据格式:
json/xml/jsonp
callback
string
否
当选择jsonp格式时必须传递
key
string
是
APPKEY
返回参数说明:
名称
类型
说明
error_code
int
返回码
reason
string
返回说明
data
-
返回结果集
LAC
string
小区号
CELL
string
基站号
LNG
string
经度
LAT
string
纬度
O_LNG
string
纠偏后的经度(用于google地图显示)
O_LAT
string
纠偏后的纬度(用于google地图显示)
PRECISION
string
基站信号覆盖范围(单位:
米,半径)
ADDRESS
string
地址
JSON返回示例:
{
"resultcode":
"200",
"reason":
"ReturnSuccessd!
",
"result":
{
"data":
[
{
"MCC":
"460",
"MNC":
"1",
"LNG":
"120.721423",
"LAT":
"31.29854",
"O_LNG":
"120.72577772352",
"O_LAT":
"31.296529947917",
"PRECISION":
"1101",
"ADDRESS":
"江苏省苏州市吴中区金鸡湖大道368号"
}
]
}
}
XML返回示例:
200
ReturnSuccessd!
460
1
120.721423
31.29854
120.72577772352
31.296529947917
1101
江苏省苏州市吴中区金鸡湖大道368号示例代码
基于PHP的移动基站位置查询接口调用代码实例
本代码是基于聚合数据的移动联通基站查询API实现的基站定位功能,使用前需要:
一、通过
二、完整调用代码实例:
--?
php
//+----------------------------------------------------------------------
//|JuhePHP[NOZUONODIE]
//+----------------------------------------------------------------------
//|Copyright(c)2010-2015Allrightsreserved.
//+----------------------------------------------------------------------
//|Author:
Juhedata
//+----------------------------------------------------------------------
//----------------------------------
//聚合数据-基站查询API调用示例代码
//----------------------------------
header('Content-type:
text/html;charset=utf-8');
$apiurl='//基站接口url
$mnc='0';//移动基站:
0联通基站:
1默认:
0
$cell='28655';//大区号
$lac='17695';//小区号
$key='52a0ee009932b35054********';//您申请的appkey
$params="mnc={$mnc}&cell={$cell}&lac={$lac}&key={$key}";
$content=juhecurl($apiurl,$params);
if(!
$content){
echo"网络错误,请求接口失败";
}else{
$result=$content,true);
$error_code=$result['error_code'];
if($error_code==0){
//成功请求到数据
$data=$result['result']['data'][0];
/*
"MCC":
"460",
"MNC":
"1",
"LNG":
"120.721423",//gps坐标:
经度
"LAT":
"31.29854",//gps坐标:
纬度
"O_LNG":
"120.72577772352",//高德坐标:
经度
"O_LAT":
"31.296529947917",//高德坐标:
纬度
"PRECISION":
"1101",//基站覆盖半径
"ADDRESS":
"江苏省苏州市吴中区金鸡湖大道368号"//基站地址
*/
print_r($data);
}else{
echo$result['reason']."(".$result['error_code'].")";
}
}
functionjuhecurl($url,$params=false,$ispost=0){
$httpInfo=array();
$ch=curl_init();
curl_setopt($ch,CURLOPT_HTTP_VERSION,CURL_HTTP_VERSION_1_1);
curl_setopt($ch,CURLOPT_USERAGENT,'Mozilla/5.0(WindowsNT10.0;WOW64)AppleWebKit/537.36(KHTML,likeGecko)Chrome/41.0.2272.118Safari/537.36');
curl_setopt($ch,CURLOPT_CONNECTTIMEOUT,30);
curl_setopt($ch,CURLOPT_TIMEOUT,30);
curl_setopt($ch,CURLOPT_RETURNTRANSFER,true);
if($ispost)
{
curl_setopt($ch,CURLOPT_POST,true);
curl_setopt($ch,CURLOPT_POSTFIELDS,$params);
curl_setopt($ch,CURLOPT_URL,$url);
}
else
{
if($params){
curl_setopt($ch,CURLOPT_URL,$url.'?
'.$params);
}else{
curl_setopt($ch,CURLOPT_URL,$url);
}
}
$response=curl_exec($ch);
if($response===FALSE){
//echo"cURLError:
".curl_error($ch);
returnfalse;
}
$httpCode=curl_getinfo($ch,CURLINFO_HTTP_CODE);
$httpInfo=array_merge($httpInfo,curl_getinfo($ch));
curl_close($ch);
return$response;
}
基于Python的移动基站位置查询接口调用代码实例
#!
/usr/bin/python
#-*-coding:
utf-8-*-
importjson,urllib
fromurllibimporturlencode
#----------------------------------
#移动联通基站调用示例代码-聚合数据
#在线接口文档:
#----------------------------------
defmain():
#配置您申请的APPKey
appkey="*********************"
#1.基站定位
request1(appkey,"GET")
#基站定位
defrequest1(appkey,m="GET"):
url="
params={
"mnc":
"",#移动基站:
0联通基站:
1默认:
0
"lac":
"",#小区号
"cell":
"",#基站号
"hex":
"",#进制类型,16或10,默认:
10
"dtype":
"",#返回的数据格式:
json/xml/jsonp
"callback":
"",#当选择jsonp格式时必须传递
"key":
appkey,#APPKEY
}
params=urlencode(params)
ifm=="GET":
f=urllib.urlopen("%s?
%s"%(url,params))
else:
f=urllib.urlopen(url,params)
content=f.read()
res=json.loads(content)
ifres:
error_code=res["error_code"]
iferror_code==0:
#成功请求
printres["result"]
else:
print"%s:
%s"%(res["error_code"],res["reason"])
else:
print"requestapierror"
if__name__=='__main__':
main()
基于C#的移动基站位置查询接口调用代码实例
usingSystem;
usingSystem.Collections.Generic;
usingSystem.Linq;
usingSystem.Text;
usingSystem.Net;
usingSystem.IO;
usingXfrog.Net;
usingSystem.Diagnostics;
usingSystem.Web;
//----------------------------------
//移动联通基站调用示例代码-聚合数据
//在线接口文档:
//代码中JsonObject类下载地址:
//----------------------------------
namespaceConsoleAPI
{
classProgram
{
staticvoidMain(string[]args)
{
stringappkey="*******************";//配置您申请的appkey
//1.基站定位
stringurl1="
varparameters1=newDictionary();
parameters1.Add("mnc","");//移动基站:
0联通基站:
1默认:
0
parameters1.Add("lac","");//小区号
parameters1.Add("cell","");//基站号
parameters1.Add("hex","");//进制类型,16或10,默认:
10
parameters1.Add("dtype","");//返回的数据格式:
json/xml/jsonp
parameters1.Add("callback","");//当选择jsonp格式时必须传递
parameters1.Add("key",appkey);//你申请的key
stringresult1=sendPost(url1,parameters1,"get");
JsonObjectnewObj1=newJsonObject(result1);
StringerrorCode1=newObj1["error_code"].Value;
if(errorCode1=="0")
{
Debug.WriteLine("成功");
Debug.WriteLine(newObj1);
}
else
{
//Debug.WriteLine("失败");
Debug.WriteLine(newObj1["error_code"].Value+":
"+newObj1["reason"].Value);
}
}
///
///Http(GET/POST)
///
///请求URL
///请求参数
///请求方法
///响应内容
staticstringsendPost(stringurl,IDictionaryparameters,stringmethod)
{
if(method.ToLower()=="post")
{
HttpWebRequestreq=null;
HttpWebResponsersp=null;
System.IO.StreamreqStream=null;
try
{
req=(HttpWebRequest)WebRequest.Create(url);
req.Method=method;
req.KeepAlive=false;
req.ProtocolVersion=HttpVersion.Version10;
req.Timeout=5000;
req.ContentType="application/x-www-form-urlencoded;charset=utf-8";
byte[]postData=Encoding.UTF8.GetBytes(BuildQuery(parameters,"utf8"));
reqStream=req.GetRequestStream();
reqStream.Write(postData,0,postData.Length);
rsp=(HttpWebResponse)req.GetResponse();
Encodingencoding=Encoding.GetEncoding(rsp.CharacterSet);
returnGetResponseAsString(rsp,encoding);
}
catch(Exceptionex)
{
returnex.Message;
}
finally
{
if(reqStream!
=null)reqStream.Close();
if(rsp!
=null)rsp.Close();
}
}
else
{
//创建请求
HttpWebRequestrequest=(HttpWebRequest)WebRequest.Create(url+"?
"+BuildQuery(parameters,"utf8"));
//GET请求
request.Method="GET";
request.ReadWriteTimeout=5000;
request.ContentType="text/html;charset=UTF-8";
HttpWebResponseresponse=(HttpWebResponse)request.GetResponse();
StreammyResponseStream=response.GetResponseStream();
StreamReadermyStreamReader=newStreamReader(myResponseStream,Encoding.GetEncoding("utf-8"));
//返回内容
stringretString=myStreamReader.ReadToEnd();
returnretString;
}
}
///
///组装普通文本请求参数。
///
///Key-Value形式请求参数字典
///URL编码后的请求数据
staticstringBuildQuery(IDictionaryparameters,stringencode)
{
StringBuilderpostData=newStringBuilder();
boolhasParam=false;
IEnumerator>dem=parameters.GetEnumerator();
while(dem.MoveNext())
{
stringname=dem.Current.Key;
stringvalue=dem.Current.Value;
//忽略参数名或参数值为空的参数
if(!
string.IsNullOrEmpty(name))//&&!
string.IsNullOrEmpty(value)
{
if(hasParam)
{
postData.Append("&");
}
postData.Append(name);
postData.Append("=");
if(encode=="gb2312")
{
postData.Append(HttpUtility.UrlEncode(value,Encoding.GetEncoding("gb2312")));
}
elseif(encode=="utf8")
{
postData.Append(HttpUtility.UrlEncode(value,Encoding.UTF8));
}
else
{
postData.Append(value);
}
hasParam=true;
}
}
returnpostData.ToString();
}
///
///把响应流转换为文本。
///
///响应流对象
///编码方式
///响应文本
staticstringGetResponseAsString(HttpWebResponsersp,Encodingencoding)
{
System.IO.Streamstream=null;
StreamReaderreader=null;
try
{
//以字符流的方式读取HTTP响应
stream=rsp.GetResponseStream();
reader=newStreamReader(stream,encoding);
returnreader.ReadToEnd