基站数据库
客服
QQ: 315508161, 手机: 19820057633
国内价格
项目 (MCC = 460)价格
基站数据库
(190903时统计460共约>4387万)
6500 / 份
更新基础费用(WinPC桌面工具)1200 / 年
加选更新下载清单 API+365 / 年
通过基站数据库及更新服务,企业自行搭建自用基站API平台,低成本运作,能适应高并发业务。当每天的查询请求次数超过10000次时,更能节省大笔费用。
其它
赠送多基站定位算法。另本站 基站 API 支持多基站定位。
国外价格
项目 (全球 MCC 不包含460)价格
国际基站数据库100000 / 整库
0.01 / 条 (按国家 MCC 购买)
更新基础费用(WinPC桌面工具)5000 / 年
加选更新下载清单 API整库用户免
本页面修订于 2019-09-16

概述

基于位置的服务,能有效提升应用或服务的体验。通过相关参数查询基站数据库返回基于基站的客户端位置。通常在不能接受到GPS信号的情况下,用于获得基于基站的粗略位置,精确度取决于客户端设备和基站之间的距离。

作为一种辅助定位方式,非常适合于物联网、车联网、物流行业、通信行业、金融行业、技术研发、跨区域定位检测等定位研究与开发测试。

相比于其它平台,GPSspg 基站数据库 的特色:

  • 四大坐标系架构,兼容各大主流地图坐标(谷歌地球,谷歌地图,百度地图,高德地图/腾讯地图)。
  • ID主键单字段查询法,比传统LAC/CELL多字段查询性能更佳,SQL处理速度更快,CPU消耗最小。
  • 6位行政区编码,方便快速统计分析数据
  • 方便的数据更新工具,一键更新到你的数据库 (BSDataSQLUpdate Windows PC版)
  • 提供完善的方法为你快速导入数据
  • 201901开始支持加选更新下载清单 API,通过自行编写定时更新方式,将完全自动化的入库更新数据

本内容就购买了本数据库的用户,介绍字段创建标准、数据导入、查询方法、更新说明。

使用限制

本平台的数据只供学习、研究、测试之用。其它用途请遵守当地法律。全部用途使用方需自行承担全部相关法律责任。
任何数据库皆可能会有数据误差问题,所以无法保证100%正确性。

注意:不允许将此数据进行转售、转让、转赠、公开发表(包括但不限于上传到互联网供第三方下载或使用)。不允许利用此数据制作 API 接口供第三方使用。否则,将终止任何合作关系并列入黑名单(包括但不限于停止提供更新服务)。

字段结构

字段名描述示例说明
ID主键ID = 3位MCC + 3位MNC + 10位LAC/TAC + 20位CI,不足位数前补0。
460000000000418800000000000000031522 = 460-000-0000004188-00000000000000031522,2G GSM / 3G UMTS。
460011000004595200000000000188239667 = 460-011-0000045952-00000000000188239667,4G LTE
MCC移动设备国家代码ISO标准, 3位。如:中国 = 460
MNC移动设备网络代码ISO标准, 3位, 不足3位前补0。如:中国移动 = 00(000), 中国联通 = 01(001), 中国电信 = 11(011)。
ACLAC/TAC2G GSM / 3G UMTS 取 LAC,范围:1~65535,16bit 16进制 0xFFFF,
4G LTE 取 TAC,范围:1~65535,16bit 16进制 0xFFFF,
5G 取 TAC,范围:1~16777215,传统 TAC 16bit 16进制 0xFFFF,扩展 TAC 24bit 16进制 0xFFFFFF。
假设最大存储值:Uint32 / 4294967295
CICELL IdentityGSM 范围:1~65535,16bit 16进制 0xFFFF,包含:EDGE / GPRS。
UMTS 范围:1~268435455, 28bit 16进制 0xFFFFFFF,UMTS CI = RNCID * 65536 + Cell ID,CELL ID = CI mod 65536。
LTE 范围:1~268435455, 28bit 16进制 0xFFFFFFF,LTE CI = eNodBeId * 256 + Cell ID,eNodBeId = CI / 256 取整。
5G 范围:1~268435455 或 68719476736, 最大值待确认。
UMTS 与 LTE 之 CELL Identity / ECI 并不等同于工参表中的 CELL ID。
假设最大存储值:Uint64 / 18446744073709551615
Ver版本号20160516
Radius覆盖半径参考值如:1500 米。
Address靠近地址描述云南省西双版纳傣族自治州景洪市嘎洒镇西双版纳金星啤酒有限公司
LatWGS84纬度22.019030,谷歌地球、谷歌地图卫星图模式适用。
LngWGS84经度100.748125,谷歌地球、谷歌地图卫星图模式适用。
REF更新权重旧REF<9001时 或 新REF>=旧REF时 或 新版本号>旧REF YYYYMMDD 时,更新工具会更新覆盖,否则跳过更新。
0~9000 保留值, YYYYMMDD = 自定义日期值,如果自己修改或添加的值不希望被更新覆盖掉,请设为 20990000.
以下MCC=460版本独有
Roads靠近道路描述026乡道西约536米
Lata高德纬度22.016210,适用于高德,腾讯,谷歌中国地图。
Lnga高德经度100.749268,适用于高德,腾讯,谷歌中国地图。
Latb百度纬度22.021958,适用于百度地图。
Lngb百度经度100.755829,适用于百度地图。
Latg谷歌中国纬度22.016209,适用于谷歌地图
Lngg谷歌中国经度100.749273,适用于谷歌地图
RID6位行政区划代码532801,见国家统计局《县及县以上行政区划代码》。
RIDS12位区划代码532801502000,参考值,见国家统计局《统计用区划代码和城乡划分代码》。

提供给你的文件格式

可提供的数据文件格式如下:默认提供 TXT(CSV) 格式。

  • *.TXT, 适用于 MySQL / Oracle / PostgreSQL 数据库快速导入。适用于 SQL Server 2014 或更高版本,通过 Bulk insert 方法快速导入。
  • *.SQL, 适用于 MySQL 数据库,通过 MySQL Workbench 运行脚本直接导入。
  • *.DAT, 适用于 MSSQL 数据库,通过 BCP 方法快速导入 MSSQL 数据库中。

导入数据到 MSSQL 中

你需要先在 MSSQL 数据库中创建空表,然后通过 BCP 方法将对应文件导入对应表中。在未导入前不要创建其它索引,以免影响导入速度。

在MSSQL中创建基站表 for 中国版

此示例中,通过下面的 SQL 语句在 SQL Server Management Studio 中创建了基站数据空表 bs_460bs_cdma_460

以下为适用于 MSSQL 的中国版 BS_460

CREATE TABLE [dbo].[bs_460](
[ID] [char](36) PRIMARY KEY,
[MCC] [int] NOT NULL DEFAULT(0),
[MNC] [int] NOT NULL DEFAULT(0),
[AC] [decimal](10, 0) NOT NULL DEFAULT(0),
[CI] [decimal](20, 0) NOT NULL DEFAULT(0),
[Ver] [int] NOT NULL DEFAULT(0),
[Radius] [int] NOT NULL DEFAULT(0),
[Address] [nvarchar](150) NOT NULL DEFAULT(0),
[Lat] [decimal](11, 8) NOT NULL DEFAULT(0),
[Lng] [decimal](11, 8) NOT NULL DEFAULT(0),
[REF] [int] NOT NULL DEFAULT(0),
[Roads] [nvarchar](150) NOT NULL DEFAULT(0),
[Lata] [decimal](11, 8) NOT NULL DEFAULT(0),
[Lnga] [decimal](11, 8) NOT NULL DEFAULT(0),
[Latb] [decimal](9, 6) NOT NULL DEFAULT(0),
[Lngb] [decimal](9, 6) NOT NULL DEFAULT(0),
[Latg] [decimal](9, 6) NOT NULL DEFAULT(0),
[Lngg] [decimal](9, 6) NOT NULL DEFAULT(0),
[RID] [int] NOT NULL DEFAULT(0),
[RIDS] [bigint] NOT NULL DEFAULT(0)
)

以下为适用于 MSSQL 的中国版 CDMA_460

CREATE TABLE [dbo].[bs_cdma_460](
[ID] [char](15) PRIMARY KEY,
[MCC] [int] NOT NULL DEFAULT(0),
[SID] [int] NOT NULL DEFAULT(0),
[NID] [int] NOT NULL DEFAULT(0),
[BID] [int] NOT NULL DEFAULT(0),
[Ver] [int] NOT NULL DEFAULT(0),
[Radius] [int] NOT NULL DEFAULT(0),
[Address] [nvarchar](150) NOT NULL DEFAULT(0),
[Lat] [decimal](11, 8) NOT NULL DEFAULT(0),
[Lng] [decimal](11, 8) NOT NULL DEFAULT(0),
[REF] [int] NOT NULL DEFAULT(0),
[Roads] [nvarchar](150) NOT NULL DEFAULT(0),
[Lata] [decimal](11, 8) NOT NULL DEFAULT(0),
[Lnga] [decimal](11, 8) NOT NULL DEFAULT(0),
[Latb] [decimal](9, 6) NOT NULL DEFAULT(0),
[Lngb] [decimal](9, 6) NOT NULL DEFAULT(0),
[Latg] [decimal](9, 6) NOT NULL DEFAULT(0),
[Lngg] [decimal](9, 6) NOT NULL DEFAULT(0),
[RID] [int] NOT NULL DEFAULT(0),
[RIDS] [bigint] NOT NULL DEFAULT(0)
)

国际版减少REF后的一些字段:[Roads],[Lata],[Lnga],[Latb],[Latg],[Lngg],[RID],[RIDS]。

国际版另分2个表:bs, bs_cdma

通过 BCP 将 DAT 文件快速导入 MSSQL

微软 BCP 批量操作技术提供了大容量数据导入导出功能。由于网速可能导致快慢及异常问题,建议执行 BCP 脚本的机器和 SQL 数据库位于同一机器或同一数据中心。

在此示例中,为 BCP 脚本导入语法:

bcp 数据库目录名.dbo.表名 in E:\*.dat -n -U 数据库用户名 -S 192.168.1.* -P 数据库密码 -b 1000 -h "TABLOCK"
pause

在新建的记事本文件中,复制输入上面的代码,并且修正核对连接参数,然后另存为脚本文件 *.bat,然后右键“以管理员身份运行”此脚本开始导入。

导入数据到 MySQL 中

若提供的是 SQL 文件直接导入即可:
MySQL Workbench -->> File -->> Open SQL Script -->> 选择文件 -->> Run SQL Script -->> 选择 Schema Name, 选择 Character Set = utf8 -->> Run......等待完成 OK。

若提供的是 txt 文件,你需要先在 MySQL 数据库中创建空表,然后通过 LOAD DATA INFILE 方法将对应文件导入对应表中。在未导入前不要创建其它索引,以免影响导入速度。

在 MySQL 中创建基站表

此示例中,通过下面的 SQL 语句在 MySQL 中创建了基站数据空表 bs_460, bs_cdma_460

以下为适用于 MySQL 的中国版 BS_460

CREATE TABLE 目录名.bs_460(
ID char(36) PRIMARY KEY,
MCC int(3) NOT NULL DEFAULT 0,
MNC int(3) NOT NULL DEFAULT 0,
AC int(10) unsigned NOT NULL DEFAULT 0,
CI bigint(20) unsigned NOT NULL DEFAULT 0,
Ver int(8) NOT NULL DEFAULT 0,
Radius int(5) NOT NULL DEFAULT 0,
Address varchar(150) NOT NULL DEFAULT 0,
Lat decimal(11, 8) NOT NULL DEFAULT 0,
Lng decimal(11, 8) NOT NULL DEFAULT 0,
REF int(10) NOT NULL DEFAULT 0,
Roads varchar(150) NOT NULL DEFAULT 0,
Lata decimal(11, 8) NOT NULL DEFAULT 0,
Lnga decimal(11, 8) NOT NULL DEFAULT 0,
Latb decimal(9, 6) NOT NULL DEFAULT 0,
Lngb decimal(9, 6) NOT NULL DEFAULT 0,
Latg decimal(9, 6) NOT NULL DEFAULT 0,
Lngg decimal(9, 6) NOT NULL DEFAULT 0,
RID int(10) NOT NULL DEFAULT 0,
RIDS bigint(12) NOT NULL DEFAULT 0
) DEFAULT CHARSET=utf8;

以下为适用于 MySQL 的中国版 CDMA_460

CREATE TABLE 目录名.bs_cdma_460(
ID char(15) PRIMARY KEY,
MCC int(3) NOT NULL DEFAULT 0,
SID int(10) NOT NULL DEFAULT 0,
NID int(10) NOT NULL DEFAULT 0,
BID int(10) NOT NULL DEFAULT 0,
Ver int(8) NOT NULL DEFAULT 0,
Radius int(5) NOT NULL DEFAULT 0,
Address varchar(150) NOT NULL DEFAULT 0,
Lat decimal(11, 8) NOT NULL DEFAULT 0,
Lng decimal(11, 8) NOT NULL DEFAULT 0,
REF int(10) NOT NULL DEFAULT 0,
Roads varchar(150) NOT NULL DEFAULT 0,
Lata decimal(11, 8) NOT NULL DEFAULT 0,
Lnga decimal(11, 8) NOT NULL DEFAULT 0,
Latb decimal(9, 6) NOT NULL DEFAULT 0,
Lngb decimal(9, 6) NOT NULL DEFAULT 0,
Latg decimal(9, 6) NOT NULL DEFAULT 0,
Lngg decimal(9, 6) NOT NULL DEFAULT 0,
RID int(10) NOT NULL DEFAULT 0,
RIDS bigint(12) NOT NULL DEFAULT 0
) DEFAULT CHARSET=utf8;

通过 LOAD DATA INFILE 将 txt 文件快速导入 MySQL 中

你需要先将 MySQL 的 sql-model (一般在my.ini文件中) 去掉 STRICT_TRANS_TABLES,然后才能执行导入。如:STRICT_TRANS_TABLES,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION 改为 NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION

在此示例中,为 LOAD DATA INFILE 语句导入语法:

LOAD DATA INFILE 'E:/*.txt'
INTO TABLE 目录名.表名 character set utf8
fields terminated by '|'
lines terminated by '\r\n'
IGNORE 1 LINES;

可在 MySQL Workbench 6.2 CE(或其它 MySQL 管理器) 中新建 SQL 查询窗口,复制粘贴上面的代码,并且修正核对连接参数,确认无误后开始执行导入。

由于网速可能导致快慢及异常问题,建议执行脚本的机器和数据库位于同一机器或同一数据中心。

导入数据到 Oracle 中

你需要先在 Oracle 数据库中创建空表,然后通过 LOAD DATA 方法将对应文件导入对应表中。在未导入前不要创建其它索引,以免影响导入速度。

在 Oracle 中创建基站表

此示例中,通过下面的 SQL 语句在 Oracle 中创建了基站数据空表 bs_460, bs_cdma_460 :(建议在 PLSQL Developer 中执行)

以下为适用于 Oracle 的中国版 BS_460

CREATE TABLE bs_460(
ID char(36) PRIMARY KEY,
MCC number(3) DEFAULT 0 NOT NULL,
MNC number(3) DEFAULT 0 NOT NULL,
AC number(10) DEFAULT 0 NOT NULL,
CI number(20) DEFAULT 0 NOT NULL,
Ver number(8) DEFAULT 0 NOT NULL,
Radius number(5) DEFAULT 0 NOT NULL,
Address nvarchar2(150) DEFAULT 0 NOT NULL,
REF number(10) DEFAULT 0 NOT NULL,
Roads nvarchar2(150) DEFAULT 0 NOT NULL,
Lat number(11, 8) DEFAULT 0 NOT NULL,
Lng number(11, 8) DEFAULT 0 NOT NULL,
Lata number(11, 8) DEFAULT 0 NOT NULL,
Lnga number(11, 8) DEFAULT 0 NOT NULL,
Latb number(9, 6) DEFAULT 0 NOT NULL,
Lngb number(9, 6) DEFAULT 0 NOT NULL,
Latg number(9, 6) DEFAULT 0 NOT NULL,
Lngg number(9, 6) DEFAULT 0 NOT NULL,
RID number(6) DEFAULT 0 NOT NULL,
RIDS number(12) DEFAULT 0 NOT NULL
);

以下为适用于 Oracle 的中国版 CDMA_460

CREATE TABLE bs_cdma_460(
ID char(15) NOT NULL PRIMARY KEY,
MCC number(3) DEFAULT 0 NOT NULL,
SID number(10) DEFAULT 0 NOT NULL,
NID number(10) DEFAULT 0 NOT NULL,
BID number(10) DEFAULT 0 NOT NULL,
Ver number(8) DEFAULT 0 NOT NULL,
Radius number(5) DEFAULT 0 NOT NULL,
Address nvarchar2(150) DEFAULT 0 NOT NULL,
REF number(10) DEFAULT 0 NOT NULL,
Roads nvarchar2(150) DEFAULT 0 NOT NULL,
Lat number(11, 8) DEFAULT 0 NOT NULL,
Lng number(11, 8) DEFAULT 0 NOT NULL,
Lata number(11, 8) DEFAULT 0 NOT NULL,
Lnga number(11, 8) DEFAULT 0 NOT NULL,
Latb number(9, 6) DEFAULT 0 NOT NULL,
Lngb number(9, 6) DEFAULT 0 NOT NULL,
Latg number(9, 6) DEFAULT 0 NOT NULL,
Lngg number(9, 6) DEFAULT 0 NOT NULL,
RID number(6) DEFAULT 0 NOT NULL,
RIDS number(12) DEFAULT 0 NOT NULL
);

通过 LOAD DATA 方法将 txt 文件快速导入 Oracle 中

先用记事本编辑好 *.bat*.ctl 文件中的参数后保存,然后执行 bat 脚本文件导入。

*.bat 脚本文件

sqlldr userid='用户名/密码 as sysdba' control=D:\BS\control_bs_460.ctl skip=1 rows=1000 bindsize=20971520 log=D:\BS\log_bs_460.txt bad=D:\BS\bad_bs_460.txt

pause

*.ctl 控制文件

load data 
CHARACTERSET UTF8 
infile 'D:\BS\bs_460_20160831_0.txt' "str'\r\n'" 
append into table 用户名.BS_460 
fields terminated by '|' 
optionally enclosed by '"' 
(ID,MCC,MNC,AC,CI,Ver,Radius,Address,Lat,Lng,REF,Roads,Lata,Lnga,Latb,Lngb,Latg,Lngg,RID,RIDS)

CDMA 为:(ID,MCC,SID,NID,BID,Ver,Radius,Address,Lat,Lng,REF,Roads,Lata,Lnga,Latb,Lngb,Latg,Lngg,RID,RIDS)

SQL 查询基站

我们建议在服务器端采用单个 ID 主键的查询方法获得极好的性能。但请不要在客户端采取组合单个 ID 的方式。

ID 主键查询法的 ID 前置处理

ID = 3位MCC + 3位MNC + 10位LAC/TAC + 20位CI,不足位数前补0。
460000000000418800000000000000031522 = 460-000-0000004188-00000000000000031522,2G GSM / 3G UMTS。
460011000004595200000000000188239667 = 460-011-0000045952-00000000000188239667,4G LTE。

CDMA ID = 5位SID + 5位NID + 5位BID,不足位数前补0。

通过 ID 主键查询: 2G / 3G / 4G
 select 要返回的字段 from 表名 where ID = '460000000000418800000000000000031522'   

如果没有结果,再查询不同扇区的结果:最后一位数任意代替:(****CI字符长度大于2位时适用)

 select 要返回的字段 from 表名 where ID Like '46000000000041880000000000000003152_'     
通过 ID 主键查询: CDMA

示例:sid=13844, nid=2, bid=28020

select 要返回的字段 from 表名 where ID = '138440000228020'
select 要返回的字段 from 表名 where SID = 13844 and NID = 2 and BID = 28020
通过 AC / CI 索引查询

首次创建索引:

CREATE INDEX IX_索引名 ON 目录名.表名(AC,CI)

SQL 查询语句:

 select 要返回的字段 from 表名 where AC = 34860 and CI = 62041

上报未知数据

当数据库中没有查询到数据时,你应该将新的编号反馈给我们。
可以发送 txt 文件到 315508161@qq.com 邮箱,txt 文件每行格式:MCC,MNC,LAC,CIMCC,MNC,TAC,CIMCC,SID,NID,BID
您也可以使用本站 API 接口或在线查询网页提交,API 接口会记录这些未知编号参数,非特殊情况下我们一般在48小时内更新发布数据。

详见链接:基站 API

基站数据更新工具

为客户提供方便的更新工具,支持 MySQL / MSSQL / Oracle / PostgreSQL 数据库。

详见链接:基站数据更新工具

感谢支持

谢谢。

相关链接
© 2019 GPSspg - 联系我们