一种基于移动互联网的精准位置判断方法
【技术领域】
[0001]本发明涉及位置判断方法,尤其是涉及一种基于移动互联网的精准位置判断方法。
【背景技术】
[0002]移动互联网一般指用户使用手机等无线终端,通过3G (WCDMA、cdma2000或者TD-SCDMA)或者WLAN (无线局域网)等速率较高的移动网络接入互联网,可以在移动状态下(如在地铁、公交车等)使用互联网的网络资源。
[0003]手机的定位也就是根据在不同接入方式根据技术实现特性来进行计算后得出的位置判断结果。目前的手机有四种定位方式,一是无线通信基站定位,二是GPS定位,三是IP定位,四是WIFI小区定位。
[0004]第一种是最早、最传统的,也是普通用户没法使用的,只要打电话、发短信就会留下位置信息,但这个信息只有通信服务商那里才有记录,普通用户没法掌握。
[0005]第二种是GPS定位,根据接收到的卫星信号定位,这种方式精度最高,误差基本在米级。
[0006]第三种是IP定位(手机定位),也就是移动互联网基站定位。当手机通过数据(GPRS)上网时,会获得一个独一无二的IP地址。每个IP地址都跟特定的通信基站发生信息交换。每个通信基站都有固定位置。因此根据手机上网的IP可以大致确定该手机的位置,但不很精确,一般误差达几百米,最高可达数公里。
[0007]第四种是WIFI小区定位。一般来说,每个WIFI小区都有相对固定的位置,而且范围不大,直径一般不超过I公里(随着技术发展这一范围正在不断扩大)。只要手机接入一个WIFI小区,就可以测定出该手机的大致位置。精度很大程度依赖于基站的分布及覆盖范围的大小,有时十分精确,可达几十米之内,有时则误差则特别大,甚至超过上千公里。
[0008]目前的位置判断除了GPS方式外误差相当大,而且完全依赖手机与基站之间RSSI (Received Signal Strength Indicat1n,接收的信号强度指示)。其受周边的环境干扰将产生千差万别的偏差,造成对位置判断所需要的经玮度数据源精确度下降。要做到比较精准的位置判断,必须多种技术结合,而且需配合一定的算法方能提升精准度。
[0009]
【发明内容】
[0010]本发明的目的在于提供一种用于提升手机定位软件中的位置判断精准度、纠正不同接入方式切换过程中产生的位置偏移的基于移动互联网的精准位置判断方法。本发明的目的是通过以下技术方案实现的。
[0011]一种基于移动互联网的精准位置判断系统,其包含:
接入方式模式识别模块、路由器MAC地址识别模块、IP地理信息解析模块、数据存储模块、位置计算模块、位置偏移差值计算模块、数据传输模块、信号强度指纹特征收集模块、位置服务平台;
接入方式模式识别模块:对移动设备的接入方式进行特征代码识别,检测移动设备判断的接入网络的方式;
路由器MAC地址识别模块:用于分析WIFI接入的路由器的MAC地址,并把分析得出的MAC地址存入数据存储模块;
IP地理信息解析模块:用于分析3G/4G接入的平台接口并获取,获得IP地理信息,并把IP信息存入数据存储模块;
位置计算模块:根据数据存储模块中的IP信息或者MAC地址信息,计算移动终端的初步位置AO ;
信号强度指纹特征收集模块:收集移动设备的信号强度指纹特征,并存入数据存储模块;
位置偏移差值计算模块:把在线收集的移动设备的信号强度指纹特征与数据存储模块中储存的已知精确位置的移动设备的信号强度指纹特征样本匹配,校正位置计算模块计算得到的初步位置A0,得到比较准确的位置Al ;
数据传输模块:用于位置服务平台之间或位置服务平台与第三方位置服务平台之间传输数据;
位置服务平台:用于存储移动设备的特征代码识别与位置信息,通过数据传输模块与其他位置服务平台、第三方位置服务平台交换移动设备的特征代码识别与位置信息的数据,对位置偏移差值计算模块得到的位置Al做进一步校正,得到精确位置A。
[0012]进一步地,在于所述的特征代码包括特征变量、函数、子程序和面向对象的类。
[0013]进一步地,所述的已知精确位置的移动设备的信号强度指纹特征样本是通过信号强度指纹特征收集模块对多个特定位置的移动设备进行信号强度指纹特征数据采集存储到数据存储模块。
[0014]一种基于移动互联网的精准位置判断方法,其包含以下步骤:
步骤1:接入方式模式识别模块对移动设备的接入方式进行特征代码识别,检测移动设备判断的接入网络的方式;
步骤2:若得到的接入网络方式为WIFI接入方式,则启用路由器MAC地址识别模块,分析WIFI接入的路由器的MAC地址,并把分析得出的MAC地址存入数据存储模块;
若得到的接入网络方式为3G/4G接入方式,则启用IP地理信息解析模块,分析3G/4G接入的平台接口并获取,获得IP地理信息,并把IP信息存入数据存储模块;
步骤3:位置计算模块根据数据存储模块中的IP信息或者MAC地址信息,计算移动终端的初步位置AO ;
步骤4:信号强度指纹特征收集模块收集移动设备的信号强度指纹特征,并存入数据存储模块;
步骤5:位置偏移差值计算模块把在线收集的移动设备的信号强度指纹特征与数据存储模块中储存的已知精确位置的移动设备的信号强度指纹特征样本匹配,校正位置计算模块计算得到的初步位置A0,得到比较准确的位置Al ;
步骤6:数据传输模块位置Al传输到位置服务平台,位置服务平台把移动设备的位置Al及对应的特征代码识别通过数据传输模块与其他位置服务平台、第三方位置服务平台交换移动设备的特征代码识别及位置信息的数据进行匹配,对移动设备的位置Al做进一步校正,得到精确位置A。
[0015]进一步地,所述的已知精确位置的移动设备的信号强度指纹特征样本是通过信号强度指纹特征收集模块对多个特定位置的移动设备进行信号强度指纹特征数据采集存储到数据存储模块,形成位置一一移动设备的信号强度指纹特征样本库。
[0016]本发明的功效在于:与现有技术相比,本发明具有以下优点。
[0017](I)本发明的基于移动互联网的精准位置判断方法实现了移动终端在运行移动终端位置判断软件接入方式模式识别后,通过检测手机硬件判断的接入网络的方式,即对相应的接入方式进行特征代码识别,该特征代码包括变量、函数、子程序和面向对象的类;然后对所述程序源代码的程序流程按特征代码进行分析,以得到表述所述的WIFI或3G/4G的接入,同时该分析步骤的程序源代码用于分类处理所述可性质程序运行时产生的动态数据。该动态数据包括:函数、子程序的调用记录,以及消息传送,并将其基本的信息数据存入一静态数据库中。经过获取路由器MAC地址并分析步骤、获取IP地理信息及分析步骤、位置判断算法插入步骤、位置偏移插值算法插入步骤、地理信息数据存储与传输步骤,经过一系列计算后,该步骤用于根据所述代码执行得出精准的位置信息,通过网络传输到第三方地图平台进行位置匹配,而后标定精准的地理信息。
[0018](2)本发明的基于移动互联网的精准位置判断方法的位置服务系统综合了现代软件计算技术、嵌入式计算技术、现代网络及无线通信技术、分布式信息处理技术、数据存储及传输技术等,通过嵌入式的移动终端对位置信息进行并发处理,并通过通信网络(互联网及移动互联网)将计算结果进行数据互相传送。
[0019](3)本发明的基于移动互联网的精准位置判断方法的位置服务系统的软件平台经与第三方位置服务平台无缝的连接,进行一系列的数据交互。为运行有移动终端位置判断软件的移动终端提供精准的定位服务。
[0020]
【附图说明】
[0021]图1为实施例中的基于移动互联网的精准位置判断的示例性结构图。
[0022]图2为实施例中的基于移动互联网的精准位置判断的位置偏移纠正逻辑图。
[0023]图3为实施例中的基于移动互联网的精准位置判断系统的硬件平台总体架构图。
[0024]图4为实施例中的基于移动互联网的精准位置判断系统的软件平台总体架构图。
[0025]
【具体实施方式】
[0026]以下实施例将结合附
图1至4对本发明作进一步的说明。
[0027]实施例1
本发明的一种基于移动互联网的精准位置判断方法,包括如下步骤:
接入方式模式识别并分析步骤,该步骤包括:通过检测手机硬件判断的接入网络的方式,即对相应的接入方式进行特征代码识别,该特征代码包括变量、函数、子程序和面向对象的类;然后对所述程序源代码的程序流程按特征代码进行分析,以得到表述所述的WIFI或3G/4G的接入,同时该分析步骤的程序源代码用于分类处理所述可性质程序运行时产生的动态数据;该动态数据包括:函数、子程序的调用记录,以及消息传送,并将其基本的信息数据存入一静态数据库中。
[0028]获取路由器MAC地址并分析步骤,该步骤用于根据所述代码在接入方式模式识别后,如是以WIFI方式接入,启动子程序分析接入的路由器的MAC地址,并存入静态数据库中。
[0029]获取IP地理信息及分析步骤,该步骤用于根据所述代码在接入方式模式识别后,如是以3G/4G方式接入,访问相应的平台(如谷歌、腾讯、新浪、网易有道、搜狐等提供IP地址查询)接口并获取相应的返回数据,根据返回数据获得IP地理信息,并调用子程序存入静态数据库中。
[0030]位置判断算法插入步骤,该步骤用于根据所述代码依据前步骤获取的基本位置数据,进行分类并根据位置判断算法得出比较精准的结果,存入静态数据库中。
[0031]位置偏移插值算法插入步骤,该步骤用于根据所述代码依据前步骤获取的基本位置数据,进行分类并根据位置偏移插值算法得出结果,存入静态数据库中。
[0032]地理信息数据(同指位置服务信息)存储与传输步骤,经过一系列计算后,该步骤用于根据所述代码执行得出精准的位置信息,通过网络传输到第三方地图平台进行位置匹配,而后标定精准的地理信息。
[0033](I)下面以JAVA代码为例,对源程序的接入网络的方式判断进行描述:
/** *检测网络是否连接*/
private boolean checkNetworkState() {boolean flag = false;
Il得到网络连接信息
manager= (ConnectivityManager) getSystemService (Context.CONNECTIVITY—SERVICE);
//判断网络是否连接
if (manager.getActiveNetworklnfo() != null) {
flag = manager.getActiveNetworklnfo().1sAvailable();
}
if (!flag) {
setNetwork ();
} else {
isNetworkAvailable();
}
return flag;
}
/** *网络未连接时,调用设置方法Vprivate void setNetwork(){
Toast.makeText (this, 〃wifi is closed!",Toast.LENGTH—SHORT).show ();AlertDialog.Builder builder = new AlertDialog.Builder (this);builder, setlcon(R.drawable.1c—launcher);builder.setTitle C 网络提示信息〃);
builder.setMessage C网络不可用,如果继续,请先设置网络! 〃); builder.setPositiveButton(〃设置〃,new OnClickListener () { ?Override
public void onClick(Dialoglnterface dialog, int which) { Intent intent = null;
/***判断手机系统的版本!如果API大于10就是3.0+,因为3.0以上的版本的设置和3.0以下的设置不一样,调用的方法不同*/
if (android, os.Build.VERS1N.SDK—INT > 10) {intent=new Intent(android, provider.Settings.ACT1N—WIFI_
SETTINGS);
} else {
intent = new Intent ();
ComponentName component = new ComponentName(
〃com.android, settings'
〃com.android, settings.WirelessSettings^); intent.setComponent(component); intent.setAct1n ("android, intent, act1n.VIEW");
}
startActivity(intent);
}
I);
builder.setNegativeButton(〃取消〃,new OnClickListener () { ?Override
public void onClick (Dialoglnterface dialog, int which) {
}
I);
builder, create (); builder, show();
}
Λ网络已经连接,然后去判断是wifi连接还是GPRS连接设置一些自己的逻辑调用
V
private void isNetworkAvailable() {
State gprs = manager.getNetworklnfo(ConnectivityManager.TYPE_MOBILE).getState ();
State wifi = manager.getNetworklnfo(ConnectivityManager.TYPE_WIFI).getState ();if (gprs == State.CONNECTED | | gprs == State.CONNECTING){
Toast.makeText(this, 〃wifi is open! gprs〃,Toast.LENGTH—
SHORT), show();
}
//判断为wifi状态下才加载广告,如果是GPRS手机网络则不加载!if (wifi == State.CONNECTED || wifi == State.CONNECTING){
Toast.makeText(this, 〃wifi is open! wifi〃,Toast.LENGTH—
SHORT), show();
1adAdmob ();
}
}
(2)下面以PHP代码为例,对源程序的获取路由器及IP的信息处理方式进行描述:目前以IP地址获取地理信息方法多种,已知的有腾讯、新浪、网易、搜狐和Google提供IP地址查询API。腾讯提供的是JavaScript的,网易提供的是XML,而新浪的有多种格式可以用,注意非XML的数据源都是GBK格式的,不管是JavaScript调用还是PHP调用都要转换一下编码。
[0034] $url = ^httpiwww.youda0.com/smartresult-xml/search.s?type=ip&q=//.$ip;$doc = new DOMDocument ();
$doc->load($url); $smartresult = $doc->getElementsByTagName (〃produ
ct");
foreach($smartresult as $product) {$locat1ns = $product_>get
ElementsByTagName("locat1
n");
$locat1n = $locat1ns->item(0)->nodeValue;
} if($locat1n != 〃") {
echo $1.".".$ip;echo 〃 来自".$locat1n.〃 的朋友";
}
Else
{
echo $1.〃.〃.$ip;
echo 〃来自未知的朋友〃;
}
public funct1n sinaIPApi($ip){
$str = file_get_contents (〃http://int.dpool.sina.com.cn/iplookup/iplookup.php?ip=//.$ip);
$str = iconv("gbk", 〃utf_8//IGN0RE", $str);
preg—match—all("/[\x{4e00}-\x{9fa5}]+/u",$str, $get);
$add = implode (’’,$get[0]); return $add;
} 通过$get的方法获取一个二维数组的地理信息包含了路由器的MAC地址及IP地址,并存入静态数据库中。
[0035]实施例2
本发明应用上述基于移动互联网的精准位置判断方法的移动终端位置判断软件,其特征在于移动终端位置判断软件包括:与用于执行所述可执行程序的处理模组相连的离线勘测与在线定位分析子程序,与离线勘测与在线定位相连的指纹特征分析子程序以及数据存储、位置偏移插值计算和通过网络传输到第三方地理信息平台进行位置匹配后的二次计算得出精准位置显示。
[0036]见图2基于移动互联网的精准位置判断的位置偏移纠正逻辑图。
[0037]实施例3
图3为实施例中的基于移动互联网的精准位置判断系统的硬件平台总体架构图。
[0038]一种应用上述基于移动互联网的移动终端位置判断软件的位置服务系统,包括所述第三方位置服务接入的平台、与分布于不同区域的多个所述位置服务平台相连的后台服务器系统;所述的位置服务平台用于与多个区域内的手机位置判断软件通过无线方式通信连接。
[0039]实施例4
为解决上述技术问题,一种应用上述的移动终端位置判断软件的位置服务系统的软件平台总体设计采用多层次模型,将软件系统分层,从而避免因系统变化而带来的影响。每一层可以单独的设计、升级。如此大大提供了系统的灵活和稳定,亦可应付多方面的需求变化。
[0040]一种应用上述的移动终端位置判断软件的位置服务系统的软件平台总体架构设计由以下三部分组成:服务器软件平台、装载位置判断软件的移动终端、第三方位置服务数据接口。其系统总体软件架构设计如图4所示。
[0041]一种应用上述的移动终端位置判断软件的位置服务系统的软件平台的服务器软件平台设计包括:网络服务器端以主数据库为核心的信息处理,并为移动终端提供基于JSON/XML接口的WEB SERVICE,整体架构使用了基于.NET的StructureMap框架,此框架成熟、灵活、可扩展的通用“插件”机制的.NET 1C框架,适用于大型系统的开发,为服务器端系统提供坚实的稳定的基础。
[0042]数据库设计采用了 MYSQL,一个非常灵活且安全的权限和密码系统,并且它允许根据主机的认证。密码是安全的,因为当与一个服务器连接时,所有的密码传送被加密。
[0043]系统可以提供直接的对数据库的增、删、改、查等常规操作,根据需要使用授权的数据访问。只有登录并获取得数据库访问权限的用户才能对数据库进行相应的操作。
[0044]以上所记载,仅为利用本创作技术内容的实施例,任何熟悉本项技艺者运用本创作所做的修饰、变化,皆属本创作主张的专利范围,而不限于实施例所揭示者。
【主权项】
1.一种基于移动互联网的精准位置判断系统,其特征在于其包含 接入方式模式识别模块、路由器MAC地址识别模块、IP地理信息解析模块、数据存储模块、位置计算模块、位置偏移差值计算模块、数据传输模块、信号强度指纹特征收集模块、位置服务平台; 接入方式模式识别模块:对移动设备的接入方式进行特征代码识别,检测移动设备判断的接入网络的方式; 路由器MAC地址识别模块:用于分析WIFI接入的路由器的MAC地址,并把分析得出的MAC地址存入数据存储模块; IP地理信息解析模块:用于分析3G/4G接入的平台接口并获取,获得IP地理信息,并把IP信息存入数据存储模块; 位置计算模块:根据数据存储模块中的IP信息或者MAC地址信息,计算移动终端的初步位置AO ; 信号强度指纹特征收集模块:收集移动设备的信号强度指纹特征,并存入数据存储模块; 位置偏移差值计算模块:把在线收集的移动设备的信号强度指纹特征与数据存储模块中储存的已知精确位置的移动设备的信号强度指纹特征样本匹配,校正位置计算模块计算得到的初步位置A0,得到比较准确的位置Al ; 数据传输模块:用于位置服务平台之间或位置服务平台与第三方位置服务平台之间传输数据; 位置服务平台:用于存储移动设备的特征代码识别与位置信息,通过数据传输模块与其他位置服务平台、第三方位置服务平台交换移动设备的特征代码识别与位置信息的数据,对位置偏移差值计算模块得到的位置Al做进一步校正,得到精确位置A。2.根据权利要求1所述的一种基于移动互联网的精准位置判断系统,其特征在于所述的特征代码包括特征变量、函数、子程序和面向对象的类。3.根据权利要求1所述的一种基于移动互联网的精准位置判断系统,其特征在于所述的已知精确位置的移动设备的信号强度指纹特征样本是通过信号强度指纹特征收集模块对多个特定位置的移动设备进行信号强度指纹特征数据采集存储到数据存储模块。4.一种基于移动互联网的精准位置判断方法,其特征在于其包含以下步骤: 步骤1:接入方式模式识别模块对移动设备的接入方式进行特征代码识别,检测移动设备判断的接入网络的方式; 步骤2:若得到的接入网络方式为WIFI接入方式,则启用路由器MAC地址识别模块,分析WIFI接入的路由器的MAC地址,并把分析得出的MAC地址存入数据存储模块; 若得到的接入网络方式为3G/4G接入方式,则启用IP地理信息解析模块,分析3G/4G接入的平台接口并获取,获得IP地理信息,并把IP信息存入数据存储模块; 步骤3:位置计算模块根据数据存储模块中的IP信息或者MAC地址信息,计算移动终端的初步位置AO ; 步骤4:信号强度指纹特征收集模块收集移动设备的信号强度指纹特征,并存入数据存储模块; 步骤5:位置偏移差值计算模块把在线收集的移动设备的信号强度指纹特征与数据存储模块中储存的已知精确位置的移动设备的信号强度指纹特征样本匹配,校正位置计算模块计算得到的初步位置A0,得到比较准确的位置Al ; 步骤6:数据传输模块位置Al传输到位置服务平台,位置服务平台把移动设备的位置Al及对应的特征代码识别通过数据传输模块与其他位置服务平台、第三方位置服务平台交换移动设备的特征代码识别及位置信息的数据进行匹配,对移动设备的位置Al做进一步校正,得到精确位置A。5.根据权利要求4所述的一种基于移动互联网的精准位置判断方法,其特征在于所述的已知精确位置的移动设备的信号强度指纹特征样本是通过信号强度指纹特征收集模块对多个特定位置的移动设备进行信号强度指纹特征数据采集存储到数据存储模块,形成位置一一移动设备的信号强度指纹特征样本库。
【专利摘要】本发明公开一种基于移动互联网的精准位置判断方法,其包含接入方式模式识别模块、路由器MAC地址识别模块、IP地理信息解析模块、数据存储模块、位置计算模块、位置偏移差值计算模块、数据传输模块、信号强度指纹特征收集模块、位置服务平台。实现基于移动互联网的精准位置判断方法的位置服务系统的软件平台经与第三方位置服务平台无缝的连接,进行一系列的数据交互。为运行有移动终端位置判断软件的移动终端提供精准的定位服务。
【IPC分类】H04W64/00
【公开号】CN104883735
【申请号】CN201510250663
【发明人】彭春莲, 陈锡平
【申请人】彭春莲
【公开日】2015年9月2日
【申请日】2015年5月18日
转载请注明原文地址:https://www.famiwei.com/read-8135853.html