Búsqueda de ubicación mediante MCC, MNC, LAC y ID de celda
Sé cuáles son los valores para MCC, MNC, LAC y ID de celda. Quiero en C escribir un programa para calcular la posición en forma de valores de latitud y longitud en Linux.
FYI:
- Android SDK - error aapt: libstdc ++. So.6 no puede abrir archivo de objeto compartido
- Arquitectura Bluez: Explique esta arquitectura
- Android Error al iniciar el emulador: No se puede ejecutar el programa
- Android Studio es más rápido en una PC con Linux?
- ¿Cómo ejecuto un binario compilado en Android?
- MCC – Código de País Móvil
- MNC – Código de red móvil
- LAC – Código de área de la ubicación; Un número de 16 bits lo que permite 65536 áreas de ubicación dentro de un GSM PLMN
- Más información está disponible aquí en Wikipedia, Área de ubicación Identidad
Pregunta:
- ¿Cómo puedo convertir MCC, MNC, LAC, Cell ID en valores de latitud y longitud en linux?
- ¿Por qué la identificación de la célula varía cada vez, al intentar leer?
- Módulos de Android y Kernel
- Cómo reparar Genymotion en linux ElementaryOS con error `CXXABI_1.3.8 'no encontrado
- Adb deja de detectar mi teléfono después de un tiempo
- System.currentTimeMillis () devuelve una marca de tiempo incorrecta en Huawei
- configure: error: Necesita luac de 32 bits al usar lua de contrib
- Problemas al configurar un TCP Proxy transparente en Android / Linux
- No se detecta el dispositivo USB de modo host - ¿Qué archivos son exactamente necesarios?
- Diferencia entre el eng y la compilación debug-usuario en Android
Para responder a sus preguntas:
-
Puede acceder a bases de datos públicas desde el terminal o un navegador para convertir la ID de la celda en lat / lon. Las bases de datos incluyen:
- API de Unwired Labs
- OpenCellID
-
ID de celda es el ID de la torre del teléfono celular a la que está conectado su teléfono / dispositivo. En el momento en que se mueva un poco, o la señal de otra torre cercana es mejor que la actual, su teléfono cambiará a esa torre, y su ID de celda refleja ahora el ID de esa torre.
Usted necesita una base de datos OpenCellID (proporcionan APIs para la nueva medición de células, obtener la posición de una celda específica, etc)
o
Utilice la API "secreta": " http://www.google.com/glm/mmap " es una API no pública para convertir cellLocation en latitud y longitud.
Muchas maneras de hacer eso se dan en los ansilers para esta pregunta de SO.
Puede utilizar este sencillo pero eficiente sitio web que no necesita ningún registro:
Mientras que puede acceder a la información del operador como MCC y MNC a la página wiki:
http://en.wikipedia.org/wiki/Mobile_country_code#I
El resultado es la ubicación GPS a través de Google Maps,
Escribí una secuencia de comandos python que puede hacer esto por ti. Puede obtener un binario del archivo 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