Android 使用MCC、MNC、LAC和单元ID查找位置
我知道MCC、MNC、LAC和Cell ID的值。我想用C编写一个程序,在Linux中以纬度和经度值的形式计算位置 供参考:Android 使用MCC、MNC、LAC和单元ID查找位置,android,linux,geolocation,gps,wireless,Android,Linux,Geolocation,Gps,Wireless,我知道MCC、MNC、LAC和Cell ID的值。我想用C编写一个程序,在Linux中以纬度和经度值的形式计算位置 供参考: LAC-位置区号;一个16位的数字,从而允许在一个GSM PLMN内有65536个位置区域 更多信息可以在维基百科上找到 问题: 在linux中如何将MCC、MNC、LAC、Cell ID转换为纬度和经度值 为什么每次尝试读取时,单元格ID都会变化 你要么需要一个数据库 (它们为新单元的测量、获取特定单元的位置等提供API) 或 使用“机密”API: “”是将ce
- LAC-位置区号;一个16位的数字,从而允许在一个GSM PLMN内有65536个位置区域
- 更多信息可以在维基百科上找到
你要么需要一个数据库 (它们为新单元的测量、获取特定单元的位置等提供API) 或 使用“机密”API: “”是将cellLocation转换为纬度和经度的非公共API
回答您的问题的答案中给出了许多方法:
您可以使用此简单但高效的网站,不需要任何登录: 虽然您可以通过wiki页面访问MCC和MNC等运营商信息:
结果是通过谷歌地图定位全球定位系统,我编写了一个python脚本,可以为您实现这一点。您可以从pyc文件中获取二进制文件
#!/bin/python
"""
Written by Atissonoun - Credits to MFC & HAC
***You need to initialize the script in order to fix the import and the dependency.
This is only a Beta version of the project***
This python file works as the engine for the project.
imports, coordinates, run......
"""
#Importing modules
import requests
#defining a Api_Keys
Google_API_KEY="Your google API Key goes here"
OpenCell_Api_Key ="Your OpenCellID API Key goes here"
def Google(MMC,MNC,LAC,ID,API_KEY=Google_API_KEY):
url = "https://www.googleapis.com/geolocation/v1/geolocate?key={}".format(API_KEY)
data={
"radioType": "gsm",
"cellTowers":[
{
"cellId": ID,
"locationAreaCode": LAC,
"mobileCountryCode": MMC,
"mobileNetworkCode": MNC
}
]
}
response = requests.post(url, json=data)
if response.status_code == 200 :
lat=response.json()[u'location'][u'lat']
long = response.json()[u'location'][u'lng']
d={'LAT':lat,'LONG':long}
print('Located Cell: {}'.format(ID))
return d
else:
print('Error: {}'.format(response.status_code))
return None
def Opencell(MMC,MNC,LAC,ID,API_KEY=OpenCell_Api_Key):
url = "https://us1.unwiredlabs.com/v2/process.php"
data = {
"token": API_KEY,
"radio": "gsm",
"mcc": MMC,
"mnc": MNC,
"cells": [{
"lac": LAC,
"cid": ID
}]
}
response = requests.post(url, json=data)
if response.status_code == 200:
if response.json()[u'status']== 'error':
print('Error: {}'.format(response.json()[u'message']))
return None
else:
lat = response.json()[u'lat']
long = response.json()[u'lon']
d = {'LAT': lat, 'LONG': long}
print('Located Cell: {}'.format(ID))
return d
else:
print('Error: {}'.format(response.status_code))
return None
这里不谈这个话题,但无论如何:据我所知,你不能用这些来计算纬度/经度;您需要在一些公开可用的数据库中查找这些值以查找位置。检查:我读了。但不知道,我怎样才能获得位置信息?正如我们看到的移动,当启用位置信息时。它在屏幕上显示最近的基站。我怎样才能知道基于MCC、MNC、LAC和Cell ID的位置?请注意,这是不鼓励的,因此答案应该是搜索解决方案的终点(与另一个参考文献的中途停留相比,随着时间的推移,这些参考文献往往会变得陈旧)。请考虑在这里添加一个独立的概要,将链接作为参考,但是“查找单元格”站点使用4个参数:MMC、MNC、LAC、CID(不仅仅是CID),那么它们为什么需要所有这些值?是否有代码演示如何使用这些参数查找位置(经度、纬度)?请添加明确说明;当你推荐自己的产品时,你必须说明你与未知情实验室的关系。