【问题标题】:Xamarin Google Maps StreetView - no option to force outdoor locationXamarin Google Maps StreetView - 没有强制户外位置的选项
【发布时间】:2019-04-04 17:19:37
【问题描述】:


我发现 Xamarin.Android 上的 Google Maps v2(Android.Gms.Maps) 和 Xamarin.iOS 上的 Xamarin.Google.iOS.Maps 中缺少功能。
该问题与创建街景有关。根据文档(原生 Android SDK),有 4 种方法可以使用 SetPosition 方法设置街景的位置。其中两个接受参数 StreetViewSource,您可以通过该参数强制 StreetView 仅使用户外图像。这是文档中的 sn-p:

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)。
有什么办法可以克服这个吗?或者这是缺乏功能,迟早会被添加(最好更早)?

【问题讨论】:

    标签: xamarin xamarin.ios xamarin.android google-maps-android-api-2 google-maps-sdk-ios


    【解决方案1】:

    在您的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" />
    

    【讨论】:

    • 我不确定您是否已阅读并理解我的整个问题,但在 Xamarin.Android 中,我无法使用 SetPosition 方法的此重载,因为它与 StreetViewSource 类不存在。
    • 是的,谢谢。关于 Xamarin.iOS 的任何线索?我正在使用最新版本的 Xamarin.Google.iOS.Maps 版本 2.5.0.1
    猜你喜欢
    • 2014-08-21
    • 1970-01-01
    • 2017-09-02
    • 2012-05-28
    • 2018-12-22
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多