It is free, but you have to own a Google cloud account. To do this you will have to give billing details but you will not be charged for the use of maps but only if you use billable services like geocoding f.e. and only if you go over free tier.
How do I know if I'm using billable services? This is my code
B4X:
Sub AddMap
gmap.Initialize("gmap", My_Google_API_Key)
Panel_Map.AddView(gmap, 0, 0, Page_Width, Page_Height)
If GPS_Position.IsAuthorized Then
gmap.GetUiSettings.MyLocationButtonEnabled = True
gmap.MyLocationEnabled = True
Else
Log("No permission!")
End If
Dim cp As CameraPosition
cp.Initialize(Temp_Latitude, Temp_Longitude, 16)
gmap.MoveCamera(cp)
gmap.AddMarker3(Temp_Latitude, Temp_Longitude, Temp_Name, LoadBitmap(File.DirAssets, "marker.png"))
End Sub
Google provides maps completely free of charge for mobile apps given that you have created a google cloud account. With this fact you can use it forever for free. Other services of Google cloud can be charged if you go over the free tier. You can google 'Google cloud maps pricing'. Maybe when this is clear enough for you, you should also limit the usage of your API key to your app's package name just for security.
Thank you for your answer but this morning I sent this morning my request to Google and said me:
"Maps SDK for Android and iOS are indeed free, with one exception, the Street View Panoramas. That is why in the quotas page you have 2 cards, and you can change 2 daily limits, the Map loads (that are free) and the billable requests (referring to the street view panoramas). https://developers.google.com/maps/billing/gmp-billing#dynamic-street-view