如何检查Windows Phone 8中的地图中心点是不是已更改

Posted

技术标签:

【中文标题】如何检查Windows Phone 8中的地图中心点是不是已更改【英文标题】:How to check if Map center point is changed in windows phone 8如何检查Windows Phone 8中的地图中心点是否已更改 【发布时间】:2014-11-01 16:02:36 【问题描述】:

我正在创建一个 Windows Phone 8 应用程序,我在其中获取地图中心并获取该位置的地址。用户可以通过拖动地图来改变中心。当用户为每个小的更改拖动时,向地图中心投标的属性正在发生变化,它将获取所有这些更改的地址以避免这种情况我正在使用计时器,每 2 秒后我正在检查中心的值是否已更改如果是,请获取如下代码所示的详细信息。当用户从一个点移动到另一个点而不是所有中间点时,是否有任何更优化的方法只能获取中心位置的地址:

当前代码:

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();
    

【问题讨论】:

【参考方案1】:

我的应用程序遇到了类似的问题,因此我建议了两种不同的方法:

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

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

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;
    

您所做的是将您的功能设置为如果用户继续移动,您想再次搜索。

【讨论】:

哪个事件用于检查用户是否按照选项 A 的建议停止与地图交互? 我们可以使用的事件是ResolveCompleted。通过使用它,我们可以轻松避免任何复杂的实现。 是的,ResolveCompleted 可能工作正常,或者可能是 mouseleftbuttonup 或任何从地图释放的触摸。在我的应用程序中,我最终使用了选项 B,因为我的地图位于枢轴内,这会导致奇怪的行为。

以上是关于如何检查Windows Phone 8中的地图中心点是不是已更改的主要内容,如果未能解决你的问题,请参考以下文章

在 Windows Phone 8 Bing 地图上设置图钉 (XAML C#)

windows phone 8 - 如何在地图上显示经度和纬度坐标(当前位置)

如何在 Windows Phone 8 应用程序中检查社交网络身份验证?

尝试使用模拟器在 Windows Phone 8 中的地图元素上获取地理位置

如何在 windows phone 8.1 中检查文件夹是不是为空

Windows Phone 8.1 绑定必应地图图钉