2013-07-30 1 views
2

빙지도 WPF 컨트롤은 각 타일 소스 요청의 쿠키 (인증 소스 세부 정보 탭 액세스 URL)를 전달하지 않습니다. 이 옵션을 사용하려면 Bing Map WPF에 설정이나 해킹이 있습니까? 미리 감사드립니다.빙지도 WPF 컨트롤, 타일 소스 URL, 쿠키?

 //Tile Source URL Example 
     var URL = "https://www.sample.com/Z/X_Y.png"; 

     //Tile Source Layer 
     var tileSourceLayer = new MapTileLayer() 
     { 
      TileSource = new TileSource() { UriFormat = URL } 
     }; 
     MyBingMap.Children.Add(tileSourceLayer); 
+1

사용자 지정 타일 소스를보다 융통성있게 정의 할 수있는 [대체 컨트롤] (http://xamlmapcontrol.codeplex.com/)을 살펴보십시오. 그리고 그것은 무료입니다. – Clemens

답변

-1

당신은 너무 같은 즉석에서 URL을 생성하는 사용자 정의 타일 소스를 만들어 사용자 정의 타일 URL의를 처리 할 수 ​​

public class MyTileSource : TileSource 
{ 
    private string _baseTileURL = "https://www.sample.com/{2}/{0}_{1}.png"; 

    public override Uri GetUri(int x, int y, int zoomLevel) 
    { 
     //{0} = X 
     //{1} = Y 
     //{2} = Z 

     return new Uri(string.Format(_baseTileURL, x, y, zoomLevel)); 
    } 
} 

당신은 다음과 같이이를 구현할 수 있습니다

MyTileSource tileSource = new MyTileSource(); 
MapTileLayer tileLayer = new MapTileLayer() 
{ 
    TileSource = tileSource 
}; 

MyMap.Children.Add(tileLayer); 

타일 레이어를 사용하면 타일 URL 요청과 쿠키를 사용할 수 없습니다. WPF 맵 컨트롤에 대한 업데이트가 곧 제공되어 사용자 지정 타일 레이어를 훨씬 더 유연하게 처리 할 수 ​​있으며이를 수행 할 수 있습니다.

+1

Bing 컨트롤이 타일을 요청할 때 쿠키를 sample.com으로 전달하지 않습니다. –

+0

URI에 맞지 않는 한 지원되지 않습니다. – rbrundritt

0

우리는이 질문에 다소 어려움을 겪었습니다. 우리가 생각해 낸 해결책은 이상적인 것보다 조금 복잡하지만 잘 작동합니다.

기본 전제는 localhost를 가리키는 경로를 반환하고 실제 대상 (Base64 인코딩 URL과 보내려는 쿠키를 각각 URL 매개 변수로 나타냄)을 나타내는 매개 변수로 오버로드하는 것입니다.

위와 같이 완료하면 지정된 포트를보고있는 다른 스레드에 HTTP Listener를 설정하기 만하면됩니다. 요청이 해당 포트를 클릭하면 쿠키를 설정 한 후지도 제공 업체로 전달한 다음지도 제공 업체 응답을 Bing 컨트롤로 다시 전달합니다.