amay077 / Xamarin.Forms.GoogleMaps

Map library for Xamarin.Forms using Google maps API
https://www.nuget.org/packages/Xamarin.Forms.GoogleMaps/
MIT License
546 stars 346 forks source link

Device theme mode compatibility #675

Open rubenc57 opened 4 years ago

rubenc57 commented 4 years ago

SUMMARY

To present the map according with the device theme mode

DETAILS

IMG_0367

IMG_0368

// How to use of your requested feature

No need for a setting, just check the current theme mode

PLATFORMS

mrehman29 commented 4 years ago

you can create your own theme/style https://mapstyle.withgoogle.com/ export that and use those json files to change Map design

in your xaml you can use MapStyle to bind the design

<map:Map x:Name="MainMap" MapStyle="{Binding MyMapStyle}" HasZoomEnabled="True" CameraIdled="ProcessCamera" VerticalOptions="FillAndExpand" HorizontalOptions="FillAndExpand" MyLocationEnabled="False" />

and in your viewmodel you can do something like

private MapStyle _myMapStyle;
public MapStyle MyMapStyle
{
    get
    {
        if (_myMapStyle == null)
        {
            var assembly = typeof(TranslateExtension).GetTypeInfo().Assembly;
            var stream = assembly.GetManifestResourceStream($"MapProject.MapStyle.json");
            string styleFile;
            using (var reader = new System.IO.StreamReader(stream))
            {
                styleFile = reader.ReadToEnd();
            }
            _myMapStyle = MapStyle.FromJson(styleFile);
        }
        return _myMapStyle;
    }
}

here i have place json fine in shared project root var stream = assembly.GetManifestResourceStream($"MapProject.MapStyle.json");