2017-04-06 6 views
1

Windows 10 크리에이터가 업그레이드 된 후 (빌드 15063)지도 자체를 이동하거나 확대/축소 할 때 내 UWP 앱의 MapControl 자식이지도에서 더 이상 고정되지 않습니다. 특정 확대/축소 수준에서지도를 확대/축소 할 때 동작의 차이를 확인했습니다. 그 시점에서 눈에 보이는 '지구 (glob)'효과가 있습니다. 묘사하기는 어렵지만지도는 제 의견으로는 순수 평면 (2D)이 아닙니다. 는 이미지 : https://www.regenthetin.nl/files/desired_behaviour_v14393.gifW10 크리에이터 업데이트 후 UWP MapControl 하위 위치가 더 이상 고정되지 않음

빌드 15063에

원하지 않는 출력, 오버레이 천천히 이동하면 이동하거나지도를 확대하면 레이더 오버레이가 같은 위치에 남아 볼 수

, 여기에 빌드 14393에 원하는 출력을 참조하십시오 이미지 : https://www.regenthetin.nl/files/undesired_behaviour_v15063.gif

책임있는 코드 블록 :

발췌문 1

// Add children to MapControl at specified location 
var radarImgPosition = new Geopoint(new BasicGeoposition() 
{ 
    Latitude = 59.60, 
    Longitude = -12.00 
}); 

RadarMap.Children.Clear(); 
if (RadarMap.Children.Count == 0) 
{ 
    RadarMap.Children.Add(radarImg); 
    MapControl.SetLocation(radarImg, radarImgPosition); 
} 
가지도

발췌문이

private void RadarMap_ZoomLevelChanged(MapControl sender, object args) 
{ 
    Windows.Foundation.Point southWestPoint; 
    RadarMap.GetOffsetFromLocation(new Geopoint(new BasicGeoposition() 
    { 
     Longitude = -11.9687, 
     Latitude = 46.9106 
    }), out southWestPoint); 

    Windows.Foundation.Point northEastPoint; 
    RadarMap.GetOffsetFromLocation(new Geopoint(new BasicGeoposition() 
    { 
     Longitude = 15.5080, 
     Latitude = 60.0247 
    }), out northEastPoint); 

    double radarImgWidth = northEastPoint.X - southWestPoint.X; 
    double radarImgHeight = Math.Abs(northEastPoint.Y - southWestPoint.Y); 

    DisplayInformation displayInformation = DisplayInformation.GetForCurrentView(); 
    double scaleValue = (displayInformation.RawPixelsPerViewPixel * 100.0); 

    radarImg.Height = (radarImgHeight)/(scaleValue/100); 
    radarImg.Width = (radarImgWidth)/(scaleValue/100); 
} 

나는 몇 시간 동안 조사했지만, 내가 지금까지 해결책을 찾지 못했습니다. 누군가가 나를 도울 수 있기를 바랍니다!

Dev config : Visual Studio 2017 i.c.m. Windows 10 Creators는 SDK를 업데이트합니다.

+0

프로젝트의 목표 SDK는 무엇입니까 :

이 솔루션은 지형 참조 시스템을 명시 할 0으로 고도를 설정하여 표면에 아이를 배치하는 것입니다? –

+0

안녕하세요 스테파노, 목표를 최신 빌드 (15063)로 변경했습니다. 그러나 더 낮은 버전을 타겟팅 할 때 MapControl의 동작은 동일합니다. 매우 귀찮습니다. 사용할 수있는 솔루션이 없다면 Google지도로 전환하여 브라우저 요소에 삽입합니다. 실망 스럽지만 동일한 사용자 환경을 보장하는 유일한 방법입니다. 다른 제안이 있으십니까? –

+0

이전 SDK를 타겟팅하는 경우 동작이 변경되어서는 안되기 때문에 버그입니다. 이 버그를 Microsoft에보고해야합니다. –

답변

1

나는 내 문제에 대한 해결책을 찾았고 나는 당신과 관련된 것이라고 느낍니다. 배경 : 내 MapControl은 XAML 요소를 자식으로 가지며 요소가 표시되어있는 동안 위치를 설정하고 변경합니다. 이 아이는 이미 설명한 스레드 오프너와 동일한 효과를 나타 냈습니다.

새로운 MapControl (제작자 업데이트)도 하위 위치 지정시 고도를 고려해야합니다. 즉, 이제 XAML 자식은 플랩 맵이 아닌 공간에 배치됩니다. 내 생각 엔이게 MapControl의 새로운 의사 3D 효과의 결과입니다.

 var location = new Geopoint(new BasicGeoposition 
      { 
       Latitude = currentLatitude, 
       Longitude = currentLongitude, 
       Altitude = 0 
      }, 
      AltitudeReferenceSystem.Terrain); 
     MapControl.SetLocation(myChild, location);