Можно ли показать карту из Maps SDK для Android, не имея GPS на устройстве - PullRequest
0 голосов
/ 08 июля 2019

Я разрабатываю приложение для планшета Kiosk (очень большой экран) без GPS. Мне не удается показать карту на этом планшете, карты остаются серыми с логотипом Google, но это работает на любом другом устройстве, даже с отключенным gps и без разрешения. Что я должен сделать : показать несколько маркеров в определенных местах, с различными значками, увеличить, чтобы сделать его нужным. Опять же, это работает везде, пока устройство имеет GPS (вкл или выкл).

Я отключил все необходимые разрешения в манифесте, иначе приложение не будет установлено. Я пробовал использовать статическую карту Google, но это кажется хорошим решением, поскольку статические карты не бесплатны, и мой клиент не готов платить.

Макет:

 <com.google.android.gms.maps.MapView xmlns:map="http://schemas.android.com/apk/res-auto"
                                                 android:id="@+id/map_view"
                                        android:layout_width="match_parent"                                     
                                       android:layout_height="match_parent"
                                                map:uiScrollGestures="true"
                                                 map:mapType="normal"
                                                 map:uiCompass="false"
                                                 map:uiZoomGestures="true"
                                                 map:uiTiltGestures="true"
                                              map:uiRotateGestures="true"/>

Код (добавляя только один маркер для примера):

override fun onCreateView(inflater: LayoutInflater, container: ViewGroup?, savedInstanceState: Bundle?): View? {
            view = inflater.inflate(R.layout.fragment_map, container, false)
    val mapView : MapView = view.findViewById(R.id.map_view) as MapView
        mapView.onCreate(savedInstanceState)
        mapView.onResume()
        try {
            MapsInitializer.initialize(activity!!.applicationContext)
        } catch (e: Exception) {
            e.printStackTrace()
        }
        mapView.getMapAsync(this)
}

 @Suppress("MissingPermission")
    override fun onMapReady(googleMap: GoogleMap?) {
            this.map = googleMap
            this.map!!.isMyLocationEnabled = false
            this.map!!.uiSettings.isMyLocationButtonEnabled = false
            val builder = LatLngBounds.Builder()
                    val latLng = LatLng(latitude, longitude)
                val icon = Utils.getBitmapFromVectorDrawable(context!!, R.drawable.ic_pin_hotel)
                    var bitmap = BitmapDescriptorFactory.fromBitmap(icon)
val marker = this.map!!.addMarker(
                        MarkerOptions().position(latLng).visible(true).anchor(0.5f, 0.6f).icon(bitmap)
                    )
                    builder.include(latLng)
 val bounds: LatLngBounds = builder.build()
                this.map?.animateCamera(CameraUpdateFactory.newLatLngBounds(bounds, 50))
}

Дело в том, что у меня пока нет доступа к устройству, поэтому его сложно отлаживать. Но мой клиент показал мне, что карта серая, только с логотипом Google.

Вот почему я спрашиваю себя, что я делаю неправильно, или если для показа карты без отображения местоположения пользователя требуется наличие gps.

Спасибо за вашу помощь

...