首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >xamarin窗体映射中的MoveToRegion行为奇怪

xamarin窗体映射中的MoveToRegion行为奇怪
EN

Stack Overflow用户
提问于 2016-05-10 19:26:59
回答 2查看 2.1K关注 0票数 1

我在我的应用程序中使用一个Map控件,我需要将可见区域设置为覆盖所有引脚的方式。讽刺是相同的代码不能同时在两个平台上工作,iOS的工作很笨拙,下面的代码产生了两个平台中几乎相同的可见区域。

代码语言:javascript
运行
复制
 if(Device.OS == TargetPlatform.iOS)
                customMap.MoveToRegion (MapSpan.FromCenterAndRadius (customMap.CustomPins [0].Pin.Position, Distance.FromMiles (0.20)));
if(Device.OS == TargetPlatform.Android)
                customMap.MoveToRegion (MapSpan.FromCenterAndRadius (customMap.CustomPins [0].Pin.Position, Distance.FromMiles (55.0)));

有人能解释吗?我为什么要像它那样编码?

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2016-05-10 19:45:07

我找到了一个解决办法,我正在等待一些解释,然后才能接受我自己的答案。

代码语言:javascript
运行
复制
Device.StartTimer(TimeSpan.FromMilliseconds(500), () =>
                    {
                        customMap.MoveToRegion(MapSpan.FromCenterAndRadius(customMap.CustomPins [0].Pin.Position, Distance.FromMiles(55.0)));
                        return false;
                    });
票数 3
EN

Stack Overflow用户

发布于 2018-04-23 21:05:18

我遇到了一个问题,当MovetoRegion在IOS和安卓系统上使用Xamarin Geolocator插件时,它被延迟了(15-30秒)。与Saket的方法和500毫秒的延迟,事情工作得更好。这是我的代码片段,希望这能帮到别人。

代码语言:javascript
运行
复制
    private void CenterOnMe_Clicked(object sender, EventArgs e)
    {
        var locator = CrossGeolocator.Current;
        var t = Task.Run(async () =>
        {
            var position = await locator.GetPositionAsync(TimeSpan.FromSeconds(10));
            Device.StartTimer(TimeSpan.FromMilliseconds(500), () =>
            {
                AroundMeMap.MoveToRegion(

                    MapSpan.FromCenterAndRadius(

                        new Position(position.Latitude, position.Longitude), Distance.FromMiles(1)));
                return false;
            });
        });
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/37147296

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档