tree 137721ab020dfe4e69692007885637a117ffe689
parent a4f0e88fca1e8ea1e76913695ffb365646d9a039
author David Iglesias <ditman@gmail.com> 1631320582 -0700
committer GitHub <noreply@github.com> 1631320582 -0700
gpgsig -----BEGIN PGP SIGNATURE-----
 
 wsBcBAABCAAQBQJhO/oGCRBK7hj4Ov3rIwAAWX0IAJ729EyUcJgcO3R9zWJBjxC5
 IR72PfWnYD/vLUO5ANpHOcL+19w1H7ohUxsqwVVoHbXNRzVwCTSpHtDiR4bzWpj1
 6+JL9BlhXRYB9f/TNlfNPHYtKk9hI/19E0pvh0Z894IN/JAmRiSNjolnptDOz6cJ
 CLn+Oll78OdQvLc2pemFX1heDFb9vkNxwcEhTU7nN5kY14Qhbx5lLADVW3Gi9Jde
 /SHvlh27D5j4RttIUKUBkHw5CvW/Sw4q+YoaKZteXX9BwESH5rIfP05hijgs6uBh
 iVv0BzQeLw//Xnigpkfm1IJIowz+Ey1QyraEZrUoDWJUG8229NHYYNF2zId1NDc=
 =cR5Q
 -----END PGP SIGNATURE-----
 

[google_maps_flutter_web] Fix getScreenCoordinate, zIndex of Circles (#4298)

This commit:

* uses the zIndex attribute when converting Circle geometry objects.
* ensures that the getScreenCoordinate method works as expected on the web platform.
  * adds tests that can use a fully-rendered Google Map (see projection_test.dart)
    * changes the initialization flow of the web Google Map, so the Controller is only returned to the main plugin when it's ready to work.

In order to test the getScreenCoordinate method, the Controller of a fully-rendered map must be available on the test, so we can retrieve information from an actual map instance. While working on this, it was observed that the Controller was being sent to the programmer before it was truly ready (while the map was still initializing).

Instead of littering the test with imprecise timeouts that may make these tests slower (and flakier) than needed, this PR also changes the initialization process of a GMap slightly so when its Controller is returned to the user of the plugin (onPlatformViewCreated method call), it is truly ready.

For this: 

* Controller.init is immediately called after the controller is created, 
* The plugin waits for the first onTilesloaded event coming from the JS SDK, and then 
* The Controller is sent to the user

This change happens within "private" sections of the plugin, so programmers using the plugin "normally" shouldn't notice any difference whatsoever (only that the GMap might load slightly faster, and the onPlatformViewCreated callback might be firing a few hundred milliseconds later).
