基站定位是指手机发射基站根据与手机的距离来计算手机坐标地理位置的一种功能,基站定位一般应用于手机用户,手机基站定位服务又叫做移动位置服务(LBS服务),它是通过电信移动运营商的网络(如GSM网)获取移动终端用户的位置信息(经纬度坐标),在电子地图平台的支持下,为用户提供相应服务的一种增值业务。

LBS基站定位接口支持基站定位,通过移动联通基站的CID和LAC进行基站位置查询。

接口名称:LBS基站定位接口

接口平台:聚合数据

接口地址:http://v.juhe.cn/cell/get

支持格式:json/xml

请求方式:get/post

请求示例:http://v.juhe.cn/cell/get?mnc=0&cell=28655&lac=17695&key=您申请的APPKEY

JSON返回示例:

{
"resultcode":"200",
"reason":"Return Successd!",
"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返回示例:

<root>
<resultcode>200</resultcode>
<reason>Return Successd!</reason>
<result>
<data>
<item>
<MCC>460</MCC>
<MNC>1</MNC>
<LNG>120.721423</LNG>
<LAT>31.29854</LAT>
<O_LNG>120.72577772352</O_LNG>
<O_LAT>31.296529947917</O_LAT>
<PRECISION>1101</PRECISION>
<ADDRESS>江苏省苏州市吴中区金鸡湖大道368号</ADDRESS>
</item>
</data>
</result>
</root>

示例代码

基于PHP的移动LBS基站定位接口调用代码实例

本代码是基于聚合数据的移动联通基站查询API实现的基站定位功能,使用前需要:

一、通过http://www.juhe.cn/docs/api/id/8申请一个接口查询appkey

二、完整调用代码实例:

<!--?php
// +----------------------------------------------------------------------
// | JuhePHP [ NO ZUO NO DIE ]
// +----------------------------------------------------------------------
// | Copyright (c) 2010-2015 http://juhe.cn All rights reserved.
// +----------------------------------------------------------------------
// | Author: Juhedata <info@juhe.cn-->
// +----------------------------------------------------------------------//----------------------------------
// 聚合数据-基站查询API调用示例代码
//----------------------------------
header('Content-type:text/html;charset=utf-8');
$apiurl = 'http://v.juhe.cn/cell/get'; //基站接口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 = json_decode($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'].")";}
}function juhecurl($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 (Windows NT 10.0; WOW64) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/41.0.2272.118 Safari/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 "cURL Error: " . curl_error($ch);return false;}$httpCode = curl_getinfo( $ch , CURLINFO_HTTP_CODE );$httpInfo = array_merge( $httpInfo , curl_getinfo( $ch ) );curl_close( $ch );return $response;
}

基于Python的移动LBS基站定位接口调用代码实例

#!/usr/bin/python
# -*- coding: utf-8 -*-
import json, urllib
from urllib import urlencode#----------------------------------
# 移动联通基站调用示例代码 - 聚合数据
# 在线接口文档:http://www.juhe.cn/docs/8
#----------------------------------def main():#配置您申请的APPKeyappkey = "*********************"#1.基站定位request1(appkey,"GET")#基站定位
def request1(appkey, m="GET"):url = "http://v.juhe.cn/cell/get"params = {"<font color=red>mnc</font>" : "", #<font color=red>移动基站:0 联通基站:1  默认:0</font>"lac" : "", #小区号"cell" : "", #基站号"hex" : "", #进制类型,16或10,默认:10"dtype" : "", #返回的数据格式:json/xml/jsonp"callback" : "", #当选择jsonp格式时必须传递"key" : appkey, #APPKEY}params = urlencode(params)if m =="GET":f = urllib.urlopen("%s?%s" % (url, params))else:f = urllib.urlopen(url, params)content = f.read()res = json.loads(content)if res:error_code = res["error_code"]if error_code == 0:#成功请求print res["result"]else:print "%s:%s" % (res["error_code"],res["reason"])else:print "request api error"if __name__ == '__main__':main()

基于C#的移动LBS基站定位接口调用代码实例

using System;
using System.Collections.Generic;
using System.Linq;
using System.Text;
using System.Net;
using System.IO;
using Xfrog.Net;
using System.Diagnostics;
using System.Web;//----------------------------------
// 移动联通基站调用示例代码 - 聚合数据
// 在线接口文档:http://www.juhe.cn/docs/8
// 代码中JsonObject类下载地址:http://download.csdn.net/download/gcm3206021155665/7458439
//----------------------------------namespace ConsoleAPI
{class Program{static void Main(string[] args){string appkey = "*******************"; //配置您申请的appkey//1.基站定位string url1 = "http://v.juhe.cn/cell/get";var parameters1 = new Dictionary<string, string>();parameters1.Add("<font color=red>mnc</font>" , ""); //<font color=red>移动基站:0 联通基站:1  默认:0</font>parameters1.Add("lac" , ""); //小区号parameters1.Add("cell" , ""); //基站号parameters1.Add("hex" , ""); //进制类型,16或10,默认:10parameters1.Add("dtype" , ""); //返回的数据格式:json/xml/jsonpparameters1.Add("callback" , ""); //当选择jsonp格式时必须传递parameters1.Add("key", appkey);//你申请的keystring result1 = sendPost(url1, parameters1, "get");JsonObject newObj1 = new JsonObject(result1);String errorCode1 = newObj1["error_code"].Value;if (errorCode1 == "0"){Debug.WriteLine("成功");Debug.WriteLine(newObj1);}else{//Debug.WriteLine("失败");Debug.WriteLine(newObj1["error_code"].Value+":"+newObj1["reason"].Value);}}/// <summary>/// Http (GET/POST)/// </summary>/// <param name="url">请求URL</param>/// <param name="parameters">请求参数</param>/// <param name="method">请求方法</param>/// <returns>响应内容</returns>static string sendPost(string url, IDictionary<string, string> parameters, string method){if (method.ToLower() == "post"){HttpWebRequest req = null;HttpWebResponse rsp = null;System.IO.Stream reqStream = 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();Encoding encoding = Encoding.GetEncoding(rsp.CharacterSet);return GetResponseAsString(rsp, encoding);}catch (Exception ex){return ex.Message;}finally{if (reqStream != null) reqStream.Close();if (rsp != null) rsp.Close();}}else{//创建请求HttpWebRequest request = (HttpWebRequest)WebRequest.Create(url + "?" + BuildQuery(parameters, "utf8"));//GET请求request.Method = "GET";request.ReadWriteTimeout = 5000;request.ContentType = "text/html;charset=UTF-8";HttpWebResponse response = (HttpWebResponse)request.GetResponse();Stream myResponseStream = response.GetResponseStream();StreamReader myStreamReader = new StreamReader(myResponseStream, Encoding.GetEncoding("utf-8"));//返回内容string retString = myStreamReader.ReadToEnd();return retString;}}/// <summary>/// 组装普通文本请求参数。/// </summary>/// <param name="parameters">Key-Value形式请求参数字典</param>/// <returns>URL编码后的请求数据</returns>static string BuildQuery(IDictionary<string, string> parameters, string encode){StringBuilder postData = new StringBuilder();bool hasParam = false;IEnumerator<KeyValuePair<string, string>> dem = parameters.GetEnumerator();while (dem.MoveNext()){string name = dem.Current.Key;string value = 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")));}else if (encode == "utf8"){postData.Append(HttpUtility.UrlEncode(value, Encoding.UTF8));}else{postData.Append(value);}hasParam = true;}}return postData.ToString();}/// <summary>/// 把响应流转换为文本。/// </summary>/// <param name="rsp">响应流对象</param>/// <param name="encoding">编码方式</param>/// <returns>响应文本</returns>static string GetResponseAsString(HttpWebResponse rsp, Encoding encoding){System.IO.Stream stream = null;StreamReader reader = null;try{// 以字符流的方式读取HTTP响应stream = rsp.GetResponseStream();reader = new StreamReader(stream, encoding);return reader.ReadToEnd();}finally{// 释放资源if (reader != null) reader.Close();if (stream != null) stream.Close();if (rsp != null) rsp.Close();}}}
}

基于GO的移动LBS基站定位接口调用代码实例

package main
import ("io/ioutil""net/http""net/url""fmt""encoding/json"
)//----------------------------------
// 移动联通基站调用示例代码 - 聚合数据
// 在线接口文档:http://www.juhe.cn/docs/8
//----------------------------------const APPKEY = "*******************" //您申请的APPKEYfunc main(){//1.基站定位Request1()}//1.基站定位
func Request1(){//请求地址juheURL :="http://v.juhe.cn/cell/get"//初始化参数param:=url.Values{}//配置请求参数,方法内部已处理urlencode问题,中文参数可以直接传参param.Set("<font color=red>mnc</font>","") //<font color=red>移动基站:0 联通基站:1  默认:0</font>param.Set("lac","") //小区号param.Set("cell","") //基站号param.Set("hex","") //进制类型,16或10,默认:10param.Set("dtype","") //返回的数据格式:json/xml/jsonpparam.Set("callback","") //当选择jsonp格式时必须传递param.Set("key",APPKEY) //APPKEY//发送请求data,err:=Get(juheURL,param)if err!=nil{fmt.Errorf("请求失败,错误信息:\r\n%v",err)}else{var netReturn map[string]interface{}json.Unmarshal(data,&netReturn)if netReturn["error_code"].(float64)==0{fmt.Printf("接口返回result字段是:\r\n%v",netReturn["result"])}}
}// get 网络请求
func Get(apiURL string,params url.Values)(rs[]byte ,err error){var Url *url.URLUrl,err=url.Parse(apiURL)if err!=nil{fmt.Printf("解析url错误:\r\n%v",err)return nil,err}//如果参数中有中文参数,这个方法会进行URLEncodeUrl.RawQuery=params.Encode()resp,err:=http.Get(Url.String())if err!=nil{fmt.Println("err:",err)return nil,err}defer resp.Body.Close()return ioutil.ReadAll(resp.Body)
}// post 网络请求 ,params 是url.Values类型
func Post(apiURL string, params url.Values)(rs[]byte,err error){resp,err:=http.PostForm(apiURL, params)if err!=nil{return nil ,err}defer resp.Body.Close()return ioutil.ReadAll(resp.Body)
}

基于JAVA的移动LBS基站定位接口调用代码实例

import java.io.BufferedReader;
import java.io.DataOutputStream;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.UnsupportedEncodingException;
import java.net.HttpURLConnection;
import java.net.URL;
import java.net.URLEncoder;
import java.util.HashMap;
import java.util.Map;import net.sf.json.JSONObject;/**
*移动联通基站调用示例代码 - 聚合数据
*在线接口文档:http://www.juhe.cn/docs/8
**/public class JuheDemo {public static final String DEF_CHATSET = "UTF-8";public static final int DEF_CONN_TIMEOUT = 30000;public static final int DEF_READ_TIMEOUT = 30000;public static String userAgent =  "Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/29.0.1547.66 Safari/537.36";//配置您申请的KEYpublic static final String APPKEY ="*************************";//1.基站定位public static void getRequest1(){String result =null;String url ="http://v.juhe.cn/cell/get";//请求接口地址Map params = new HashMap();//请求参数params.put("mnc","");//移动基站:0 联通基站:1  默认:0params.put("lac","");//小区号params.put("cell","");//基站号params.put("hex","");//进制类型,16或10,默认:10params.put("dtype","");//返回的数据格式:json/xml/jsonpparams.put("callback","");//当选择jsonp格式时必须传递params.put("key",APPKEY);//APPKEYtry {result =net(url, params, "GET");JSONObject object = JSONObject.fromObject(result);if(object.getInt("error_code")==0){System.out.println(object.get("result"));}else{System.out.println(object.get("error_code")+":"+object.get("reason"));}} catch (Exception e) {e.printStackTrace();}}public static void main(String[] args) {}/**** @param strUrl 请求地址* @param params 请求参数* @param method 请求方法* @return  网络请求字符串* @throws Exception*/public static String net(String strUrl, Map params,String method) throws Exception {HttpURLConnection conn = null;BufferedReader reader = null;String rs = null;try {StringBuffer sb = new StringBuffer();if(method==null || method.equals("GET")){strUrl = strUrl+"?"+urlencode(params);}URL url = new URL(strUrl);conn = (HttpURLConnection) url.openConnection();if(method==null || method.equals("GET")){conn.setRequestMethod("GET");}else{conn.setRequestMethod("POST");conn.setDoOutput(true);}conn.setRequestProperty("User-agent", userAgent);conn.setUseCaches(false);conn.setConnectTimeout(DEF_CONN_TIMEOUT);conn.setReadTimeout(DEF_READ_TIMEOUT);conn.setInstanceFollowRedirects(false);conn.connect();if (params!= null && method.equals("POST")) {try {DataOutputStream out = new DataOutputStream(conn.getOutputStream());out.writeBytes(urlencode(params));} catch (Exception e) {// TODO: handle exception}}InputStream is = conn.getInputStream();reader = new BufferedReader(new InputStreamReader(is, DEF_CHATSET));String strRead = null;while ((strRead = reader.readLine()) != null) {sb.append(strRead);}rs = sb.toString();} catch (IOException e) {e.printStackTrace();} finally {if (reader != null) {reader.close();}if (conn != null) {conn.disconnect();}}return rs;}//将map型转为请求参数型public static String urlencode(Map<String,Object>data) {StringBuilder sb = new StringBuilder();for (Map.Entry i : data.entrySet()) {try {sb.append(i.getKey()).append("=").append(URLEncoder.encode(i.getValue()+"","UTF-8")).append("&");} catch (UnsupportedEncodingException e) {e.printStackTrace();}}return sb.toString();}
}

转载于:https://my.oschina.net/u/2556621/blog/645161

LBS基站定位接口代码示例相关推荐

  1. Android定位--GPS定位与LBS基站定位

    虽然现在第三方的定位非常强大,非常方便,但是我们在只需要很简单的定位,且不想用第三方的时候,我们可以自己动动手,基于GPS卫星定位和LBS基站定位的方式获取当前位置. GPS定位 1.权限申请 首先我 ...

  2. LBS基站定位和GPS卫星定位对比

    备注: 本文为网上找到的一个word文档,看了之后,觉得总结相当不错,现在把其贴出来共享!同时感谢原作者无私的奉献精神! 位置定位大体上可以分为两大类: 1. GPS(Global Positioni ...

  3. java短信发送接口代码示例demo分享

    适用类型:适用于各类办公系统.ERP.CRM.电子商务平台的插件(如网站app短信验证码.群发短信会议通知.会员/客户关系交流.订单生成通知.发货通知.日程提醒.催费通知等等) 接 口特 点: 绿色短 ...

  4. 免费基站定位api代码分享

    免费基站定位api支持基站定位,通过移动联通基站的CID和LAC进行基站位置查询. 接口名称:免费基站定位api 接口平台:聚合数据 接口地址:http://v.juhe.cn/cell/get 支持 ...

  5. 最简单的全球基站定位接口API

    为了简化大家的开发,提供了一个简单基站定位 基站查询接口API http://minigps.net/l.do?c=460&n=0&a=9779&e=3721 演示网址 有啥问 ...

  6. 票查查发票查验api接口代码示例

    前言 随着营改增的要求,企业对发票管理的智能化需求越来越紧迫,企业ERP系统.财务系统均希望直接对接国家发票校验平台进行发票校验,本文结合自己企业对接的票查查平台给出一个对接例子,希望能帮到有此需求的 ...

  7. JS短信接口代码示例

    这篇文章主要为大家分享JS短信接口代码,JS短信发送.JS批量发送.JS短信验证码发送,感兴趣的小伙伴们可以参考一下. 支持语言:JS 功能:JS短信接口.JS发送短信 用途:短信验证码.会员营销短信 ...

  8. 交通违章查询接口代码示例

    交通违章查询接口可以查询支持城市及查询条件,多省份直连查询,目前支持广东.北京.上海.江苏.湖北.山东.重庆.贵州.海南.云南.青海,并且查询违章,违章列表.违章时间.违章地点.违章行为.违章代码.违 ...

  9. c#12星座速配代码_十二星座运势接口代码示例分享

    运势查询也是一种大众化的娱乐方式,星座运势接口方便查询十二星座的今日运势,下面分享的是今日或明日运势格式和本周或下周运势格式. 接口平台:聚合数据 接口地址:http://web.juhe.cn:80 ...

  10. JDBC工具类DataSourceUtils,dao接口代码示例;

    DataSourceUtils工具类连接池用的是Druid: import com.igeek.common.utils.DataSourceUtils;import java.sql.Connect ...

最新文章

  1. 利用歌词插件 让WMP活起来
  2. 数据中心机房安全知识培训
  3. 外卖平台降费,能否成为“全村人的希望”?
  4. Canvas2~茜色的调色盘可奈线12月2日剧情翻译
  5. html jquery 不能自动完成,在jQuery UI自动完成中使用HTML
  6. php小程序群发通知,小程序实现群发功能代码的实现
  7. Windows 10《描图》应用现已开源
  8. .Net读取xlsx文件Excel2007
  9. 华为云登顶HotpotQA多跳知识推理问答评测
  10. python之路_前端基础之jQuery入门2
  11. 【循序渐进学Python】4. Python中的序列——字典
  12. 重磅炸弹之英译世界名著137部
  13. RedHat 下载地址
  14. 机器人系统常用仿真软件工具介绍、效果与评价指标(2018年更新)
  15. 【内网穿透笔记】FTP映射出现227 Entering Passive Mode错误命令原因及解决方法
  16. 什么是MTTF、MTBF、MTRF?
  17. Improving Graph Collaborative Filtering with Neighborhood-enriched Contrastive Learning(个人笔记)
  18. 【UCIe】UCIe NOP 介绍
  19. springboot私人牙科诊所管理系统java maven idea
  20. 自己动手写CSDN博客提取器源码分析之三:处理网页保存为pdf文件

热门文章

  1. CSRF(跨站请求伪造)
  2. CorelDRAW弄什么封面都是很简单的事呢
  3. ffmpeg处理——*.flv视频文件和*.ass字幕文件合并成mp4
  4. 回归分析的基本步骤与自相关性
  5. 合批/批量渲染 (Batch)、实例化Instancing
  6. Web组件开发一 分层详解 和模块化
  7. visio2010取消连接线交叉出的跨线
  8. 读书笔记_《深度学习与计算机视觉》.叶韵 编著.田疆 西门子高级研究员 作序.机械工业出版社
  9. 再见2021:是校园和职场的交接也是25本书
  10. Tik Tok与抖音的不同有哪些