Xamarin Google Maps StreetView - нет возможности принудительного расположения на улице - PullRequest
0 голосов
/ 31 октября 2018


Я обнаружил недостающие функции в Картах Google v2 (Android.Gms.Maps) на Xamarin.Android и в Xamarin.Google.iOS.Maps на Xamarin.iOS.
Проблема связана с созданием StreetView. Согласно документации (родной Android SDK) есть 4 способа, как вы можете установить местоположение улицы с помощью метода SetPosition. Два из них принимают параметр StreetViewSource, с помощью которого вы можете заставить StreetView использовать только наружные изображения. Вот фрагмент из документации:

private static final LatLng SAN_FRAN = new LatLng(37.765927, -122.449972);
// Set position with LatLng only.
mStreetViewPanorama.setPosition(SAN_FRAN);
// Set position with LatLng and radius.
mStreetViewPanorama.setPosition(SAN_FRAN, 20);
// Set position with LatLng and source.
mStreetViewPanorama.setPosition(SAN_FRAN, StreetViewSource.OUTDOOR);
// Set position with LaLng, radius and source.
mStreetViewPanorama.setPosition(SAN_FRAN, 20, StreetViewSource.OUTDOOR);

К сожалению, в Xamarin нет перегрузки метода, который принимает параметр StreetViewSource (и даже класса StreetViewSource).
Есть ли способ преодолеть это? Или это недостаток функциональности, и он будет добавлен рано или поздно (желательно раньше)?

1 Ответ

0 голосов
/ 31 октября 2018

В вашей реализации IOnStreetViewPanoramaReadyCallback вы можете установить положение вашей StreetViewPanorama для включения StreetViewSource.Outdoor:

public void OnStreetViewPanoramaReady(StreetViewPanorama panorama)
{
    panorama.SetPosition(new LatLng(-33.87365, 151.20689), StreetViewSource.Outdoor);
    ~~~
}

Обновление:

Вам необходимо установить как минимум 70.1501.0-preview...

<package id="Xamarin.GooglePlayServices.Maps" version="70.1501.0-preview2" targetFramework="monoandroid90" />
...