En primer lugar, estoy tratando de hacer todo este desastre en C# (.net 4) así que si se te ocurre algún código que me ayude, será apreciado, pero realmente todo ayudaría en este punto.¿Cómo triangular correctamente las torres de telefonía GSM para obtener una ubicación?
Tengo una situación en la que tengo un dispositivo que solo puede obtener información GSM Cell (por cierto, a través del comando AT+KCELL
), así que tengo una colección de valores sobre torres celulares (cada LAC, MCC, MNC, ID de celda, Señal Fuerza y el primer avance de sincronización). Creo que, por lo tanto, estoy en un buen lugar para poder encontrar algún tipo de coordenadas de longitud y latitud (aunque inexactas, pero bueno, sí). Aquí es donde busco ayuda porque ahora mi pequeño cerebro está confundido ...
Puedo ver varios servicios que brindan resolución de celda (Google, Open Cell ID, etc.) y toman LAC, MCC etc. argumentos y devolver una coordenada. Me imagino que lo que devuelvan sería, por lo tanto, la coordenada de la torre en la que paso. Así que en mi caso podría enviar todos los LAC, etc. que tengo, y obtener una colección de longitud y latitudes. Brillante, pero ese no es el lugar donde está mi dispositivo. Ahora creo que necesito hacer algún tipo de triangulación y aquí es donde mi falta de conocimiento me está perjudicando.
Así que estoy en lo cierto hasta ahora? Asumiendo que soy, ¿cómo realizo este cálculo (hay algo por ahí que me dirá qué hacer con todos estos números o, mejor aún, alguna biblioteca de código abierto, puedo hacer referencia y alimentar todo esto para obtener algo sensato) ?
Supongo que necesitaría usar el avance de temporización para calcular una distancia aproximada desde una torre de telefonía móvil (tal vez usando la potencia de la señal de alguna manera), pero ¿qué debo hacer? Como puedes ver, ¡estoy fuera de mi alcance aquí!
Por ejemplo, esto es algo que podría obtener de vuelta de la mencionada comando AT:
5,74,33,32f210,157e,8101,50,0,79,3,32f210,157e,80f7,37,64,5,32f210,157e,810b,37,55,32,32f210,157e,9d3,27,41,33,32f210,157e,edf8,15
romperlo y analizarlo me gustaría conseguir (espero que analizar este derecho - existe la posibilidad existe un error en mi rutina de análisis, por supuesto, pero parece razonable):
Number of cells: 5
Cell 1
LAC: 5502
MNC: 1
MCC: 232
Cell ID: 33025
Signal: 80
ARFCN: 74
BSIC: 33
Timing advance: 0
Longitude: 14.2565389
Latitude: 48.2248439
Cell 2
LAC: 5502
MNC: 1
MCC: 232
Cell ID: 33015
Signal: 55
ARFCN: 79
BSIC: 3
Longitude: 14.2637736
Latitude: 48.2331576
Cell 3
LAC: 5502
MNC: 1
MCC: 232
Cell ID: 33035
Signal: 55
ARFCN: 64
BSIC: 5
Longitude: 14.2488966
Latitude: 48.232513
Cell 4
LAC: 5502
MNC: 1
MCC: 232
Cell ID: 2515
Signal: 39
ARFCN: 55
BSIC: 32
Longitude: 14.2488163
Latitude: 48.2277972
Cell 5
LAC: 5502
MNC: 1
MCC: 232
Cell ID: 60920
Signal: 21
ARFCN: 41
BSIC: 33
Longitude: 14.2647612
Latitude: 48.2299558
Entonces, ¿con toda esa información cómo encuentro, de la manera más precisa, dónde estoy?
cualquier posibilidad de publicación los datos que obtienes ... al menos un 50% porque tengo curiosidad ;-) – gordatron
Creo que puede haber diferentes técnicas para hacer esto dependiendo de exactamente qué datos tienes. Podría responder, pero sería mejor recopilar todos los datos que pueda obtener y publicar una pregunta en: http: //math.stackexchange.com/ a menos que haya alguien que haya hecho esto antes y esté dispuesto a compartir la información específica – gordatron
@gordatron He agregado un ejemplo - gracias por mirar mi pregunta – kmp