首页
学习
活动
专区
圈层
工具
发布
首页
学习
活动
专区
圈层
工具
MCP广场
社区首页 >问答首页 >如何在windows phone 8中检查地图中心点是否已更改

如何在windows phone 8中检查地图中心点是否已更改
EN

Stack Overflow用户
提问于 2014-09-08 12:23:52
回答 1查看 239关注 0票数 0

我正在创建一个Windows 8应用程序,在该应用程序中,我取地图的中心,并获取该位置的地址。用户可以通过拖动地图来改变中心。当用户拖动到地图中心的每个小的更改,它将得到所有这些更改的地址,以避免这一点,我使用的计时器,在每2秒后,我正在检查中心的值是否已经改变,如果是的话,获取如下代码所示的详细信息。如果用户已经从一个点移动到另一个点,而不是所有中间点的地址,那么是否有更多的优化方法可以获得中心位置的地址:

当前代码:

代码语言:javascript
运行
复制
private void PickUpMap_CenterChanged(object sender, MapCenterChangedEventArgs e)
{
    if (currentMapLocation != null)
    {
        var newCenter = PickUpMap.Center;
        Geocoordinate location = currentMapLocation;
        var userLocation = location.ToGeoCoordinate();
        if (userLocation.GetDistanceTo(newCenter) > 50)
        {
            ClosestCabMessage.Text = "Changing..";
            ClosestCab = null;
        }
        AddressGrid.Visibility = System.Windows.Visibility.Collapsed;
        mapLocationAddress.Text = "Changing..";
    }
    else
    {
        ClosestCabMessage.Text = "Changing ..";
        ClosestCab = null;
    }
    mapCenterChanged = true;
}

private async void mapCenterAddressTimerTick(object sender, EventArgs e)
{
    if (mapCenterChanged)
    {
        mapCenterChanged = false;

        UpdateMapCenterAddress();
    }
}
EN

回答 1

Stack Overflow用户

回答已采纳

发布于 2014-09-08 16:00:18

我的应用程序也有类似的问题,所以我建议采用两种不同的方法:

选项A:不检查地图中心何时更改,而是检查用户何时停止与地图交互,然后询问地图中心并搜索位置

选项B:你可以在你的函数上做类似的事情

代码语言:javascript
运行
复制
bool callcenter = false;
bool morecenter = false;
if (callcenter == false)
{
    callpcenter = true;
    //DO SOMETHING
    callcenter = false;
    if (morecenter == true)
    {
        //CALL FUNCTION AGAIN
        morecenter = false;
    }
    else
    {
       morecenter = true;
    }
}

您所做的是将您的函数设置为encueue,如果用户继续移动,您希望再次搜索该函数。

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/25724186

复制
相关文章

相似问题

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