Red de conocimiento informático - Problemas con los teléfonos móviles - Reaccionar Native-IOS usando Amap

Reaccionar Native-IOS usando Amap

Encontré muchas dependencias en github que usan el mapa ios Amap basado en paquetes React Native, pero la mayoría de las dependencias informarán errores ya sea que estén conectadas de forma manual o automática. Es incompatible con el actual react-native ^ 0.42.0. Finalmente, encontré dos dependencias que pueden mostrar el mapa de Gaode en IOS. Finalmente encontré dos dependencias que pueden mostrar el mapa de Gaode en IOS y una que puede localizar sus dependencias. .

El proceso de configuración es muy simple. Simplemente ejecute los siguientes dos comandos. El mapa se puede mostrar en inglés en el simulador y en caracteres chinos en la máquina real. No sé si es porque la versión es demasiado antigua.

Aunque esta dependencia muestra el mapa Amap, después de estos experimentos de instalación del mapa Amap, creo que esta dependencia es muy extraña. (1) No vi ningún archivo relacionado con Amap MAMapKit.framework, AMapFoundationKit.framework, AMapSearchKit.framework; (2) No hay ningún valor clave de Amap configurado. Personalmente creo que está en react-native-maps/ios /AirMaps/. AIRMapManager.m No hay ningún valor de clave Gaode configurado en el archivo y la línea 31 debe ser el lugar donde se ingresa el valor de clave Gaode.

En iOS, la configuración se puede realizar según la documentación, lo que significa que se requiere vinculación manual. Primero vinculé reaccionar-nativo a reaccionar-nativo-inteligente-amap y luego lo configuré de acuerdo con las instrucciones, pero hay dos puntos a tener en cuenta:

Los resultados son los siguientes, las coordenadas no están marcadas en el mapa, así que revisé la lista de problemas y vi que otros habían mencionado este problema. El problema era un problema de dependencia, así que verifiqué el código fuente de la dependencia para intentar encontrarlo y descubrí que simplemente cambiando el archivo react-native-smart-amap/ios/RCTAMap/RCTAMap/RCTAMapManager.m en las líneas 422, 423 y Cambie NO a SÍ en la línea 424 para encontrar las coordenadas en el mapa. m, las ubicaciones en el mapa están marcadas como coordenadas del mapa y las ubicaciones en el mapa están marcadas como coordenadas del mapa. strong>, los resultados de las anotaciones de ubicación en el mapa son los siguientes.

Las anteriores son todas las configuraciones en iOS, y también hay cosas a las que prestar atención en Android. El artículo anterior "React-Native-Android usando Goldmap" introdujo el uso de Goldmap en Android. Si desea utilizar la dependencia de reaccionar-nativo-smart-amap en el lado de Android para mantener la coherencia, primero debe configurarla. android/setting. Configure en gradle, android/app/build.gradle, MainApplication.java y luego configure react-native-smart-amap de acuerdo con la documentación; de lo contrario, se informarán dos errores.

El primer error se muestra a continuación. La solución es agregar el comentario org.gradle.jvmargs=-Xmx2048m -XX: MaxPermSize=512m -XX: HeapDumpOnOutOfMemoryError - Dfile.encoding=UTF-8 Release.

El segundo error que se muestra a continuación se debe a un conflicto de paquete, ya que ya existe una dependencia de Goldmap. La solución es eliminar de android/setting.gradle, android/app/build.gradle, MainApplication.java, android/app/build.gradle, android/app/build.gradle, MainApplication.java y Android/setting.gradle Dependencia en reaccionar-amap. Elimine la configuración nativa-amap-android en android/app/build.gradle y MainApplication.java, dejando solo una configuración para Goldmap.

También hay un problema en Android que indica que los comentarios de posición no se muestran. Debe liberar el comentario de 202 líneas en react-native-smart-amap/android/src/main/reactnativecomponent/amap/RCTAMapView. .java y muestre los marcadores de ubicación en el mapa como se muestra a continuación.

En ios, siga ejecutando react-native link react-native-smart-amap-location para el enlace automático y luego siga las instrucciones para configurar, solo preste atención a lo siguiente: