Status Update
We are aligning the Latest renderer's behavior with the Legacy renderer, that is 3D buildings will be rendered under GeoJsonLayer. This will also align the behavior of Maps SDK for Android with Maps SDK for iOS.
Code changes to address this issue have been submitted. We are now onto the release process to ship the fix via Google Play services. We estimate it will be available around the beginning of April 2025. We will update here again once we have more detail about the rollout.
Until that time, apps can still specify the Legacy renderer.
If you need the Legacy renderer's behavior urgently, please explicitly specify the Legacy renderer when initializing Maps SDK:
Comments
ma...@google.com <ma...@google.com>
ma...@google.com <ma...@google.com> #2
Thank you for posting.
We'll need some more details to troubleshoot this issue - please provide the following, in particular steps to reproduce the issue:
-
Put together a simplified reproduction case (
http://sscce.org/ ) and add it to a git hosting provider (e.g. github, bitbucket, etc)? The easiest way to do this might be to fork the Google Maps Android API Samples Repository and modify one of the existing demo activities:https://github.com/googlemaps/android-samples -
List steps to reproduce the problem
-
Attach the following:
- screenshots
- sample code
le...@googlemail.com <le...@googlemail.com> #3
Steps to Reproduce:
1. Start kotlin demo examples
2. set Renderer on bottom to legacy or latest
3. open example "Polygons"
3. Zoom in until the 3D buildings appear below or above the polygon
attached are some screenshots showing the different behavior.
ma...@google.com <ma...@google.com>
iv...@google.com <iv...@google.com>
iv...@google.com <iv...@google.com> #4
Thank you for waiting.
We have verified and logged this issue internally. Please note that we cannot give you any timelines, but you can star the issue to get notifications.
iv...@google.com <iv...@google.com> #5
We appreciate your patience.
After further checking, it looks like that the issue mentioned is working as intended. To fix the buildings being on top of the layer, you can disable the buildings by using the
ka...@gmail.com <ka...@gmail.com> #6
as...@google.com <as...@google.com> #7
Thank you for your feedback. We are reviewing this issue again.
We would like to offer another workaround in case you need to show buildings: use map styling, either
- Using Cloud styling: customize a Map Style to show building footprints instead of its 3D model by clicking the Settings icon, and then select Buildings > Footprints. See the attached cloud_styling.png.
- Please note that a map load using Cloud styling is counted as
and is charged.Dynamic Maps
- Please note that a map load using Cloud styling is counted as
- Using JSON styling: edit the JSON style file and change the color attribute for
landscape.man_made
>geometry.fill
to be translucent (for example, change color#aabbcc
to #80aabbcc). Then the GeoJsonLayer can be seen through the buildings.- Tip: it is useful to keep
landscape.man_made
>geometry.stroke
color non-translucent, so that the building outlines can be seen easier. - A map load using JSON styling is counted as
and is not charged.Mobile Native Dynamic Maps
- Tip: it is useful to keep
Please let us know if this is sufficient for your use cases or not.
ka...@gmail.com <ka...@gmail.com> #8
ci...@gmail.com <ci...@gmail.com> #9
This is a total bs. You completely change maps behavior, saying it's "intended behavior" when it never was, and all this is to force users to use cloud styling, so you could charge money for it. Your so-called "workaround" for JSON styling looks like crutches to me. If I set completely transparent colors, 3d buildings disappear completely, because they don't have borders. Any non-transparent color looks like sh**t. Although, landscape.man_made
is used not only for 3d buildings, it affects other objects of a map. So you should either change this behavior like it always was, or add some option to draw polylines/polygons etc. over 3d buildings, or an option to turn 3d buildings into flat ones
no...@totalpave.com <no...@totalpave.com> #10
I'd also like to point out that this issue seems to only occur on Android. I do not experience the same behaviour on iOS. On iOS it does work as expected where my tile overlays are drawn above the base map, including buildings.
de...@atommobility.com <de...@atommobility.com> #11
There are 2 downsides of landscape.man_made:
- Google maps shows building in two colors, one closer to yellow and the other one to gray. landscape.man_made does not support that - only one color for all buildings.
- landscape.man_made > geometry.fill impacts background color near the buildings as result buildings blend with background, harder to distinguish.
JSON styling is not sufficient enough to match previous UX. This prevents us from updating to 19.0.0. as we want to show semi-transparent polygons that are also on top of buildings.
as...@google.com <as...@google.com> #12
Thank you for all the feedback. We are working to improve the Latest renderer regarding this behavior. We will update again with more details on the improvements.
ar...@gmail.com <ar...@gmail.com> #13
ar...@gmail.com <ar...@gmail.com> #14
as...@google.com <as...@google.com> #15
#14: this behavior happens on the
Client library 18.1.0 and older previously defaulted to the Legacy renderer so the behavior didn't happen. However, we had recently completed automatic migration to the Latest renderer. That means all apps that don't specify a preferred renderer will get the Latest renderer, regardless of the client library version.
If this behavior impacts your use case significantly, please explicitly specify the Legacy renderer when initializing Maps SDK:
ar...@gmail.com <ar...@gmail.com> #16
st...@gmail.com <st...@gmail.com> #17
To add to the use cases, in my case, I want to use the new renderer for performance gains and the fact that it provides a proper View to Marker mechanism (and we don't need to hack this through Bitmaps anymore) and have the Circle painted above buildings as well. Kinda like "my location", but with a customized appearance for the location + accuracy that I want to point out to my users.
ar...@gmail.com <ar...@gmail.com> #18
as...@google.com <as...@google.com> #19
Hello all, I have updated the priority to reflect that this issue is high in our priority list. We are still discussing this issue internally and have not made any decisions yet, but we are considering options including adding a new API to specify whether layers and drawings should be rendered under or over the 3D buildings, what the default should be, and how we should roll this out. We will update here again when the plan is more concrete. Thank you for your patience.
ar...@gmail.com <ar...@gmail.com> #20
as...@google.com <as...@google.com> #21
Update: after cross-team discussions, we decided to align the Latest renderer's behavior with the Legacy renderer, that is 3D buildings will be rendered under GeoJsonLayer. This will also align the behavior of Maps SDK for Android with Maps SDK for iOS. We plan to implement and roll this out by the end of the year.
If an API to modify this behavior is needed, we would like to ask you to file a feature request.
ar...@gmail.com <ar...@gmail.com> #22
as...@google.com <as...@google.com> #23
Definitely, we will update here when we roll out the change.
em...@gmail.com <em...@gmail.com> #24
as...@google.com <as...@google.com> #25
#24: the release ETA is by the end of the year. If you need the Legacy renderer behavior urgently, please explicitly specify the Legacy renderer when initializing Maps SDK:
ar...@gmail.com <ar...@gmail.com> #26
ar...@gmail.com <ar...@gmail.com> #27
as...@google.com <as...@google.com> #28
The implementation of a solution for this issue has proven to be more complex than anticipated. Our current timeline estimates a resolution by the end of February 2025.
ar...@gmail.com <ar...@gmail.com> #29
te...@gmail.com <te...@gmail.com> #30
as...@google.com <as...@google.com> #31
#30: thank you for the suggestion.
As an update, we continue working to resolve this issue for the various objects that users can add to the map, e.g. GeoJsonLayer (this issue), circle (
ar...@gmail.com <ar...@gmail.com> #32
ar...@gmail.com <ar...@gmail.com> #33
You knew this was going to be a problem. You promised a fix by the end of February 2025. You upped the priority on fixing this bug. If I get a fix to this bug by the end of February 2025 then I have only a few days in which to download those fixes and test my app before it is forced onto the new renderer.
Cutting things a little fine aren't you?
as...@google.com <as...@google.com> #34
Google update: code changes to address this issue have been submitted. We are now onto the release process to ship the fix via Google Play services.
We are committed to making the fix available via Google Play services before we start decommissioning the Legacy renderer.
You can add your Google Account to join
em...@gmail.com <em...@gmail.com> #35
Hi there,
As mentioned above, I tried the latest update of the Google Maps library 19.1.0 and used Google Play Services Beta, but my Polygon is still hidden under the 3d buildings. Am I missing something here?
I know this ticket is related to GeoJsonLayer, but I read that you would fix all layers after this comment
Thank you
ar...@gmail.com <ar...@gmail.com> #36
I'm still waiting for the fix, too. Every few days I see another Maps-related update come down to my devices, and I try again, but no success as yet.
em...@gmail.com <em...@gmail.com> #37
Yeah, another problem on my side is that we are using the Google Maps Compose Library, which is not yet released, to use the latest Google Maps SDK 19.1.0. Assume will have to wait longer for this too. Will keep an eye on this to see if things change. Didn't expect this fix to come via Google play service, tho.
as...@google.com <as...@google.com> #38
Google update: Hi everyone, the fix will be delivered via Google Play services automatically to devices. It does not depend on the client library version (e.g. 19.1.0) you built your app with, and you don't need to rebuild your apps.
However, the fix does not make it to March 3. We estimate it will be available around the beginning of April. We will update here again once we have more detail about the rollout.
Until that time, apps can still specify the Legacy renderer.
Description
Device: Google Pixel 4 (Android 11)
Google Play Services version on the device: 21.39.18