Xamarin.Forms.GoogleMaps.MapStyle.FromJson(styleFile) не работает в MAUI

Этот код ранее использовался в Xamarin, а затем был перенесен в MAUI. После этого MAUI не поддерживает MapStyle. Итак, вот код, с которым я столкнулся.

private void AddMapStyle()
{
    var assembly = typeof(Event).GetTypeInfo().Assembly;
    Stream stream = new MemoryStream();

    if (eventViewModel.IsDark || deviceTheme == AppTheme.Dark)
    {
        stream = assembly.GetManifestResourceStream($"App.Views.Themes.MapDark.json");
    }
    else
    {
        assembly.GetManifestResourceStream($"App.Views.Themes.MapLight.json");
    }
    string styleFile;
    using (var reader = new System.IO.StreamReader(stream))
    {
        styleFile = reader.ReadToEnd();
    }

    map.MapType = Xamarin.Forms.GoogleMaps.MapStyle.FromJson(styleFile);
}

Тогда ошибка, которую я получаю,

Severity    Code    Description Project File    Line    Suppression State
Error   CS0234  The type or namespace name 'Forms' does not exist in the namespace 'Xamarin' (are you missing an assembly reference?)   App.MAUI (net8.0-android34.0), App.MAUI (net8.0-ios)    C:\wwwroot\App.MAUI\Views\Event.xaml.cs 965 Active

Поэтому мне нужно знать, как изменить это или любое предложение, чтобы решить эту проблему.

Как использовать get bounds с react-leaflet и данными JSON
Как использовать get bounds с react-leaflet и данными JSON
Я считаю, что получить границы из библиотеки leaflet Js очень просто, но использование этой функции может быть немного сложным. Поэтому позвольте мне...
0
0
53
1
Перейти к ответу Данный вопрос помечен как решенный

Ответы 1

Ответ принят как подходящий

На Мауи вы можете использовать Handler, чтобы настроить собственную карту. Попробуйте код ниже,

    void ModifyMap()
    {
        ...
        Microsoft.Maui.Maps.Handlers.MapHandler.Mapper.AppendToMapping("MyCustomization", (handler, view) =>
        {
#if ANDROID
            
            var map = handler.PlatformView as Android.Gms.Maps.GoogleMap;
            map.SetMapStyle(new Android.Gms.Maps.Model.MapStyleOptions(styleFile));
#endif
        });
    }

Чтобы использовать карту на Мауи, вы можете обратиться к .NET MAUI Map.

Надеюсь, поможет!

Другие вопросы по теме