Mantenha tudo organizado com as coleções
Salve e categorize o conteúdo com base nas suas preferências.
Um renderizador de mapa atualizado está disponível a partir da versão 18.2.0 do SDK do Maps para Android. Ele traz muitas melhorias, incluindo o suporte à Estilização de mapas baseada na nuvem.
Redução da carga de rede, da demanda de processamento e do consumo de memória
Processamento de gestos aprimorado para melhores animações, além de deslocamento e aplicação de zoom mais suaves
Transições mais fluidas e marcadores de mapa posicionados claramente
Uma experiência do usuário mais estável e aprimorada
Programação de lançamento
Em outubro de 2021, o Google começou a lançar o renderizador de mapa atualizado. Naquela época, você escolhia ativar ou não o recurso para usar esse novo renderizador no seu app.
Com o lançamento da versão 18.2.0 do SDK do Maps para Android, o Google mudou do renderizador de mapa padrão legado para o atualizado. Nessa versão, o renderizador usado ao desenvolver um novo app ou recriar algum atual se torna o atualizado.
O que acontece quando o renderizador padrão muda?
O renderizador padrão vira o atualizado com o lançamento da versão 18.2.0 do SDK do Maps para Android. Para aproveitar o renderizador atualizado, é necessário desenvolver novos apps ou recriar algum atual usando a nova versão do SDK.
Porém, você tem a escolha de recusar essa mudança. Nesse caso, seu app vai continuar usando o renderizador legado.
Consulte Desativar o uso do renderizador atualizado se quiser um exemplo de código.
Dispositivos compatíveis
Para usar o renderizador de mapa atualizado, os dispositivos precisam atender a estes critérios:
Android 5.0 (nível da API 21) ou mais recente
2 GB ou mais de armazenamento de dados
Versão 21.39.14 ou mais recente do Google Play Services
Os dispositivos com Android 4.4W (nível da API 20) e anteriores, com menos de 2 GB de armazenamento de dados ou com a versão 21.39.13 ou anterior do Google Play Services, vão continuar usando o renderizador legado, até mesmo depois que o renderizador padrão passar a ser o atualizado.
Desativar o uso do renderizador atualizado
Por padrão, os apps desenvolvidos usando a versão 18.2.0 do SDK do Maps para Android utilizam o renderizador atualizado. Se necessário, você pode desativar de forma explícita essa opção para dar preferência ao renderizador legado no seu app.
Atualize o código para chamar MapsInitializer.initialize(), transmitindo Renderer.LEGACY. Assim, você desativa a versão atualizada e passa a usar o renderizador legado.
O exemplo a seguir mostra como chamar MapsInitializer.initialize() para desativar a versão atualizada e passar a usar o renderizador de mapa legado.
Kotlin
import com.google.android.gms.maps.MapsInitializer
import com.google.android.gms.maps.MapsInitializer.Renderer
import com.google.android.gms.maps.OnMapsSdkInitializedCallback
internal class MapRendererOptInApplication : Application(), OnMapsSdkInitializedCallback {
override fun onCreate() {
super.onCreate()
MapsInitializer.initialize(applicationContext, Renderer.LEGACY, this)
}
override fun onMapsSdkInitialized(renderer: MapsInitializer.Renderer) {
when (renderer) {
Renderer.LATEST -> Log.d("MapsDemo", "The latest version of the renderer is used.")
Renderer.LEGACY -> Log.d("MapsDemo", "The legacy version of the renderer is used.")
}
}
}
Java
import com.google.android.gms.maps.MapsInitializer;
import com.google.android.gms.maps.MapsInitializer.Renderer;
import com.google.android.gms.maps.OnMapsSdkInitializedCallback;
class MapRendererOptInApplication extends Application implements OnMapsSdkInitializedCallback {
@Override
public void onCreate() {
super.onCreate();
MapsInitializer.initialize(getApplicationContext(), Renderer.LEGACY, this);
}
@Override
public void onMapsSdkInitialized(MapsInitializer.Renderer renderer) {
switch (renderer) {
case LATEST:
Log.d("MapsDemo", "The latest version of the renderer is used.");
break;
case LEGACY:
Log.d("MapsDemo", "The legacy version of the renderer is used.");
break;
}
}
}
[[["Fácil de entender","easyToUnderstand","thumb-up"],["Meu problema foi resolvido","solvedMyProblem","thumb-up"],["Outro","otherUp","thumb-up"]],[["Não contém as informações de que eu preciso","missingTheInformationINeed","thumb-down"],["Muito complicado / etapas demais","tooComplicatedTooManySteps","thumb-down"],["Desatualizado","outOfDate","thumb-down"],["Problema na tradução","translationIssue","thumb-down"],["Problema com as amostras / o código","samplesCodeIssue","thumb-down"],["Outro","otherDown","thumb-down"]],["Última atualização 2024-04-17 UTC."],[[["\u003cp\u003eThe Maps SDK for Android now features an upgraded map renderer with cloud-based styling and improved performance.\u003c/p\u003e\n"],["\u003cp\u003eAutomatic updates to the new renderer are complete for eligible apps, enhancing user experience with smoother interactions and better visuals.\u003c/p\u003e\n"],["\u003cp\u003eDevices require Android 5.0 (API level 21) or later and Google Play services version 21.39.14 or later to use the upgraded renderer.\u003c/p\u003e\n"],["\u003cp\u003eDevelopers can opt out of the upgraded renderer and use the legacy renderer, although the legacy renderer is deprecated and will be decommissioned in March 2025.\u003c/p\u003e\n"],["\u003cp\u003eOpting out requires explicit initialization with \u003ccode\u003eMapsInitializer\u003c/code\u003e and specifying \u003ccode\u003eRenderer.LEGACY\u003c/code\u003e before creating any map views or fragments.\u003c/p\u003e\n"]]],["The Maps SDK for Android version 18.2.0 introduced an upgraded map renderer, which was automatically rolled out to all applicable apps by March 2024. This new renderer offers cloud-based styling, advanced polyline customization, reduced resource usage, and improved performance. Devices must use Android 5.0+ and Google Play services 21.39.14+. Apps can opt-out of the upgrade to the legacy renderer by upgrading the Maps SDK to v18.0 or greater, and calling `MapsInitializer.initialize()` with `Renderer.LEGACY`. The legacy renderer will be decommissioned in March 2025.\n"],null,["An upgraded map renderer is available as of version 18.2.0 of the\nMaps SDK for Android. This renderer brings many improvements, including support for\nCloud-based maps styling.\n\nThe new renderer provides the following benefits:\n\n- [Cloud-based maps styling](/maps/documentation/android-sdk/cloud-based-map-styling) features are available with the new renderer.\n- [Advanced Polyline Customizations](/maps/documentation/android-sdk/shapes#polyline-customization) are available with the new renderer.\n- Reduced network load, processing demand, and memory consumption.\n- Improved gesture handling for better animations, plus smoother panning and zooming.\n- More fluid transitions and clearly positioned map labels.\n- A more stable and improved user experience.\n\nAutomatic update status\n\nIn March of 2024, Google began automatically updating all deployed apps to use\nthe upgraded renderer. Automatic updates have been applied to all apps running\non devices that meet the [minimum device requirements](#supported-devices),\nregardless of the version of the Maps SDK for Android used by the app. This rollout\nis now complete.\n\nThe automatic updates did not apply to:\n\n- Apps that have already updated to use the upgraded renderer.\n\n- Apps that have explicitly [opted out](#opt-out) of the upgrade.\n\n- Apps running on devices that don't meet the [minimum device\n requirements](#supported-devices).\n\nSupported devices\n\nTo use the upgraded map renderer, devices must meet these criteria:\n\n- Android 5.0 (API level 21) or later\n- Using Google Play services version 21.39.14 or later\n\nDevices using Android 4.4W (API level 20) and earlier or using Google Play\nservices versions 21.39.13 or earlier continue to use the legacy renderer.\n\nOpt-out of using the upgraded renderer\n\nIf necessary, you can explicitly opt-out of using the upgraded renderer to use\nthe legacy renderer in your app.\n| **Important:** The legacy renderer is deprecated and is scheduled for decommissioning in April 2025. Follow the legacy renderer's decommissioning progress in public issue [404999856](https://issuetracker.google.com/issues/404999856). After the legacy renderer is decommissioned, you will no longer be able to opt-out of using the upgraded renderer. However, apps running on devices that don't meet the [minimum requirements](#supported-devices) for the new renderer will continue to function with the legacy renderer.\n\nTo opt-out:\n\n- [Upgrade](/maps/documentation/android-sdk/versions) Maps SDK for Android to\n v18.0 or greater.\n\n- Update your code to explicitly import [MapsInitializer](/android/reference/com/google/android/gms/maps/MapsInitializer)\n and\n [MapsInitializer.Renderer](/android/reference/com/google/android/gms/maps/MapsInitializer.Renderer).\n\n- Update your code to call\n [`MapsInitializer.initialize()`](/android/reference/com/google/android/gms/maps/MapsInitializer#initialize(android.content.Context,%20com.google.android.gms.maps.MapsInitializer.Renderer,%20com.google.android.gms.maps.OnMapsSdkInitializedCallback)),\n passing `Renderer.LEGACY` to opt-out and use the legacy renderer.\n\n- Use [OnMapsSdkInitializedCallback](/android/reference/com/google/android/gms/maps/OnMapsSdkInitializedCallback)\n to determine which version of the renderer was returned.\n\nYour code must call\n[`MapsInitializer.initialize()`](/android/reference/com/google/android/gms/maps/MapsInitializer)\nbefore any\n[MapView](/maps/documentation/android-sdk/reference/com/google/android/libraries/maps/MapView),\n[MapFragment](/maps/documentation/android-sdk/reference/com/google/android/libraries/maps/MapFragment),\nor\n[SupportMapFragment](/maps/documentation/android-sdk/reference/com/google/android/libraries/maps/SupportMapFragment)\nhas been created. We recommend calling this in `onCreate` for your app's\n[Application](https://developer.android.com/reference/android/app/Application#onCreate()),\nor\n[Activity](https://developer.android.com/reference/android/app/Activity#onCreate(android.os.Bundle,%20android.os.PersistableBundle)),\nbefore its content view is set.\n\nThe following example shows how to call `MapsInitializer.initialize()` to\nopt-out to use the legacy map renderer. \n\nKotlin \n\n```kotlin\nimport com.google.android.gms.maps.MapsInitializer\nimport com.google.android.gms.maps.MapsInitializer.Renderer\nimport com.google.android.gms.maps.OnMapsSdkInitializedCallback\n\ninternal class MapRendererOptInApplication : Application(), OnMapsSdkInitializedCallback {\n override fun onCreate() {\n super.onCreate()\n MapsInitializer.initialize(applicationContext, Renderer.LEGACY, this)\n }\n\n override fun onMapsSdkInitialized(renderer: MapsInitializer.Renderer) {\n when (renderer) {\n Renderer.LATEST -\u003e Log.d(\"MapsDemo\", \"The latest version of the renderer is used.\")\n Renderer.LEGACY -\u003e Log.d(\"MapsDemo\", \"The legacy version of the renderer is used.\")\n }\n }\n}\n```\n\nJava \n\n```java\nimport com.google.android.gms.maps.MapsInitializer;\nimport com.google.android.gms.maps.MapsInitializer.Renderer;\nimport com.google.android.gms.maps.OnMapsSdkInitializedCallback;\n\nclass MapRendererOptInApplication extends Application implements OnMapsSdkInitializedCallback {\n\n @Override\n public void onCreate() {\n super.onCreate();\n MapsInitializer.initialize(getApplicationContext(), Renderer.LEGACY, this);\n }\n\n @Override\n public void onMapsSdkInitialized(MapsInitializer.Renderer renderer) {\n switch (renderer) {\n case LATEST:\n Log.d(\"MapsDemo\", \"The latest version of the renderer is used.\");\n break;\n case LEGACY:\n Log.d(\"MapsDemo\", \"The legacy version of the renderer is used.\");\n break;\n }\n }\n}\n```"]]