Android tiene una API de posicionamiento GPS oficial, ¿por qué usar el SDK de posicionamiento GPS/Baidu?

1. Antecedentes

En un Demoproyecto, el equipo está listo para usar el GPSposicionamiento oficial para evitar problemas API.
Pero en mi impresión, el posicionamiento oficial APIno es fácil de usar, y el posicionamiento se 高德地图/百度地图usa SDK.
Si usa la ubicación oficial APIpara obtener la ubicación, es posible que no pueda obtenerla en el interior cuando esté depurando en la oficina.
Pero después de probarlo 感到惊讶, pude ubicarlo en el interior. ¿Qué está pasando? Es diferente de lo que pensaba
.

A través de este artículo se aclararán estas cuestiones.

  • ¿Qué tipos de métodos de posicionamiento activo existen?
  • ¿Por qué es casi imposible recibir señales de GPS en interiores?
  • ¿Por qué se puede realizar el posicionamiento en interiores?
  • ¿Debo utilizar la API de posicionamiento oficial o el SDK de posicionamiento de Baidu/AutoNavi?

2. API de posicionamiento oficial de Android

Veamos primero la API de posicionamiento oficial de Android , existen varios métodos de posicionamiento

  • GPS_PROVIDER: Obtenga la información de latitud y longitud de la ubicación geográfica a través de GPS
  • NETWORK_PROVIDER: Obtener la ubicación geográfica a través de la estación base de la red móvil o Wi-Fi
  • PASSIVE_PROVIDER: Posicionamiento pasivo. Otras aplicaciones como Baidu y AutoNavi utilizan el posicionamiento. El sistema actualizará la información de posicionamiento y la guardará. De esta manera, se puede obtener la información de ubicación más reciente. Puede consultar getProvider()el método para determinar el origen de la actualización de ubicación, lo que requiere ACCESS_FINE_LOCATIONel permiso, pero si no está habilitado GPS, esto solo providerpuede devolver una coincidencia de ubicación aproximada;

3. Verifique las declaraciones de los artículos en línea

Busqué las descripciones en los artículos en línea, y es similar a mi impresión.Hay
dos formas de posicionamiento activo en la API oficial de alto nivel, pero no son muy fáciles de usar.

  • Posicionamiento GPS : cuando se desarrolla en interiores, los teléfonos móviles difícilmente pueden obtener información de ubicación.
  • Posicionamiento en red : por problemas de red en China continental no se puede acceder a los servicios de google

inserte la descripción de la imagen aquí

¿Artículos con puntos de vista similares también
resuelven el problema del alto consumo de energía en el posicionamiento nativo de Android
? ¿Pobre precisión de posicionamiento? Cómo optimizar el posicionamiento nativo de Android
El servicio de posicionamiento nativo de Android LocationManager
El posicionamiento de teléfonos móviles con Android onLocationChanged no regresa durante mucho tiempo

4. ¿Por qué el GPS no puede recibir señal en interiores?

Después de consultar la información pertinente, se puede concluir que dado que el satélite espacial está demasiado lejos del suelo, no debe haber obstrucción entre la antena y el cielo.
Las casas de hoy están hechas de hormigón armado, por lo que la señal GPS se bloqueará o reflejará y no se podrá recibir.

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

5. ¿Por qué se puede realizar el posicionamiento en interiores?

Miré el código fuente de la demostración de posicionamiento que encontré en Github y descubrí que el posicionamiento se puede obtener en la tableta porque el posicionamiento que encontré Demose optimizó internamente: si no se puede obtener el GPS, entonces el posicionamiento se puede obtener a través del red.
Debe ser 国内高版本的Androiduna red optimizada y no utilizada Google(no se puede acceder en China google), y el posicionamiento de la red del sistema de telefonía móvil de versión alta nacional está especialmente optimizado para el entorno de la red nacional, por lo que se puede obtener el posicionamiento.
Sin embargo, el posicionamiento obtenido de esta manera es una posición aproximada y la precisión no es alta.
Si simplemente obtienes el posicionamiento GPS , lo probé, y es casi imposible obtenerlo en interiores. Solo puedes obtener GPSel posicionamiento colocando el teléfono fuera de la ventana.

Si la versión de Android es demasiado baja, o un teléfono móvil con un sistema Android nativo, es posible que esté en China y no se pueda realizar el posicionamiento en interiores (por falta de equipo, esta conclusión no se ha verificado)

6. ¿Será más fiable el SDK de posicionamiento de Baidu/AutoNavi?

6.1 Introducción del SDK de posicionamiento de Amap

El SDK de posicionamiento especializado de Baidu/AutoNavi integra múltiples datos de posicionamiento (GPS, estación base, Wifi, Bluetooth, etc.), y la información de posicionamiento obtenida será más confiable que el posicionamiento nativo de Android, y es gratis.

Aquí tomamos el SDK de posicionamiento de Gaode como ejemplo e interceptamos algunas presentaciones oficiales.

inserte la descripción de la imagen aquí
inserte la descripción de la imagen aquí

6.2 Principios de varios métodos de posicionamiento de teléfonos móviles

Los métodos de posicionamiento de teléfonos móviles incluyen principalmente: posicionamiento GPS y posicionamiento de red (estación base, WiFi, Bluetooth, etc.)

6.2.1 Posicionamiento GPS

Reciba transmisiones satelitales a través de un receptor GPS y obtenga su propia información de posición analizando la posición, la distancia y otra información de múltiples satélites visibles y los algoritmos correspondientes.
ventaja:

  • Alta precisión de posicionamiento, el posicionamiento GPS se divide en uso militar y civil, la precisión del campo civil puede ser básicamente de 10 metros
  • Usar posicionamiento GPS, sin tarjeta SIM, sin red

defecto :

  • Posicionamiento lento (más lento que el posicionamiento en red)
  • Alto consumo de energía (más consumo de energía que el posicionamiento de la red)
  • No se puede ubicar en interiores o en el sótano (Debido a que la capacidad de penetración de la señal del satélite es débil, no se puede realizar el posicionamiento en interiores, incluso en exteriores, donde la capa de nubes es espesa, el posicionamiento se verá afectado)
  • La gran mayoría de los usuarios finales de teléfonos móviles no habilitan la función GPS de forma predeterminada

6.2.2 Posicionamiento en red

El posicionamiento en red consiste en enviar la señal (principalmente estación base, Wifi, Bluetooth) recibida por el dispositivo móvil al servidor de red para obtener la ubicación. La razón por la cual los datos de la señal se envían a la red es que el posicionamiento de la red utiliza huellas dactilares de señal para el posicionamiento, lo que requiere una base de datos de huellas dactilares enorme y continuamente actualizada, que es difícil de sincronizar con dispositivos móviles. Para ubicar, es necesario establecer las características de las huellas dactilares de cada ubicación con anticipación y luego comparar las huellas dactilares históricas de cada ubicación con las huellas dactilares en tiempo real durante el posicionamiento para determinar la ubicación.

Los SDK de posicionamiento como AutoNavi y Baidu mantienen un gran conjunto de bases de datos de huellas dactilares y utilizan redes nacionales, por lo que pueden utilizar bien el posicionamiento de red en China.

6.1.2.1 Posicionamiento de la estación base

De acuerdo con la relación entre el terminal móvil y las múltiples ubicaciones de la estación base, la intensidad de la señal, etc., calcule su propia información de ubicación.

ventaja:

  • posicionamiento rápido
  • menos consumo de energía
  • disponible en interiores

defecto:

  • El error de posicionamiento es grande y la precisión de posicionamiento es de decenas de metros a varios miles de metros. La precisión depende de la distribución de las estaciones base y el tamaño del área de cobertura. Por lo general, la precisión es de 150 metros.
  • La cobertura de la estación base es relativamente alta en las ciudades, y se recomienda utilizar el posicionamiento de la estación base.Si está en los suburbios, la estación base está lejos, la cobertura de la estación base no es tan buena como en la ciudad y la el error de posicionamiento es relativamente grande
6.2.2.2 Posicionamiento WiFi/Bluetooth

Use la señal del punto de acceso inalámbrico y la intensidad de la señal buscada por el teléfono móvil para hacer coincidir los datos del servidor de ubicación del punto de acceso y devolver la información de ubicación del teléfono móvil.

Bluetooth es similar.

Principio :

  1. Cada punto de acceso inalámbrico tiene una dirección única BSSID(es decir, macla dirección), y la ubicación del punto de acceso inalámbrico es relativamente fija dentro de un cierto período de tiempo.
  2. Cuando el teléfono móvil enciende WiFi, puede buscar puntos de acceso inalámbricos cercanos y la intensidad de la señal de los puntos de acceso
  3. El teléfono móvil carga la información de la lista de puntos de acceso inalámbrico buscada al servidor de ubicación; el servidor de ubicación puede devolver la información de ubicación del teléfono móvil a través del cálculo

ventaja:

  • Alta precisión de posicionamiento, especialmente en lugares con muchos puntos de acceso de redes inalámbricas;
  • Velocidad de posicionamiento rápida;

defecto:

  • Confíe en la señal WiFi;

6.2 Referirse parcialmente a la evolución de los métodos de posicionamiento de teléfonos móviles
basados ​​en el algoritmo de posicionamiento de red Gaode Resumen de varios métodos de posicionamiento en android

7. Resumen

A través de este artículo, podemos responder la pregunta al comienzo de este artículo.

  • ¿Qué tipos de métodos de posicionamiento activo existen?
    • Hay dos tipos de posicionamiento GPS y posicionamiento de red
  • ¿Por qué es casi imposible recibir señales de GPS en interiores?
    • Debido a que el satélite espacial está demasiado lejos del suelo, una vez que haya una obstrucción entre la antena y el cielo, la señal de posicionamiento GPS será interferida.
  • ¿Por qué se puede realizar el posicionamiento en interiores?
    • Debido a que la versión anterior del sistema Android doméstico no ha optimizado el posicionamiento de la red, y la red de Google utilizada, naturalmente, no se puede acceder en China
    • La versión superior del sistema de telefonía móvil Android doméstico se ha optimizado para el entorno de red doméstico, por lo que puede utilizar el posicionamiento de red
  • ¿Debo utilizar la API de posicionamiento oficial o el SDK de posicionamiento de Baidu/AutoNavi?
    • Los SDK de posicionamiento profesional como Baidu/Gaode serán más confiables y se recomienda utilizar SDK de posicionamiento profesional para el desarrollo de proyectos de producción.
    • Si es un proyecto de demostración, solo se instala en algunos teléfonos móviles nuevos. Para mayor comodidad, puede usar el posicionamiento nativo oficial de Android, y el posicionamiento también puede tener éxito. Puede ver esta demostración de posicionamiento .

Este artículo es publicado exclusivamente por Helium en CSDN
Dirección: https://blog.csdn.net/EthanCo

Supongo que te gusta

Origin blog.csdn.net/EthanCo/article/details/130153809
Recomendado
Clasificación