2017-02-28 15 views
1

GMap WPF (또는 WinForms 포트를 WPF 응용 프로그램)에서 여러 가지 색상의 경로를 만들려면 어떻게해야합니까?GMap 여러 색상 줄 경로

경로를 통해 일부 매개 변수 값의 색 코드 (예 : 속도의 색상 코드 : 저속의 경우 빨간색, 고속의 경우 녹색, 저와 저 사이의 모든 "히트 맵 배율 색상")를 나타내야합니다.

점마다 다른 색상으로 마커를 하나 추가하려고 시도했지만 많은 해결책이있을 때이 솔루션은 충분히 효율적이지 않은 것 같습니다. 또한 두 마커/포인트 사이에 선 연결이 없습니다.

아마도 렌더링 기능이나 다른 것을 오버라이드 할 수있는 방법이 있을까요?

의견을 보내주십시오.

답변

0

현재 경로 렌더링 메소드는 모든 획을 동일한 획을 사용하여 그립니다.

물론
public class GMapRouteColored : GMap.NET.WindowsForms.GMapRoute 
{ 
    public GMapRouteColored(IEnumerable<PointLatLng> points, string name) 
     : base(points, name) 
    { 

    } 

    public override void OnRender(Graphics g) 
    { 
     for(int i = 0; i < LocalPoints.Count - 1; i++) 
     { 
      g.DrawLine(yourPenForThisLine, LocalPoints[i].X, LocalPoints[i].Y, LocalPoints[i+1].X, LocalPoints[i+1].Y); 
     } 

    } 
} 

은 아마 당신은 또한 포인트의 일부 값에 따라 사용할 펜을 결정하는 방법이 필요합니다 : 당신은 같은 것을 국도 클래스를 상속하고 자신의 그리기 방법을 확인해야합니다. 이 문제를 처리 할 수있는 유일한 쉬운 방법은 보유하고있는 포인트 수와 동일한 정수 목록을 추가하고이 목록을 각 로컬 포인트 인덱스에 사용할 펜으로 결정하는 것입니다. 이게 도움이 되길 바란다.

편집 : WPF 용 솔루션을 찾고 있습니다. 필자가 게시 한 솔루션은 WinForms에서만 작동하지만, 컨트롤을 사용한 경험을 토대로 WinForms는 오버레이와 함께 훨씬 더 많은 기능을 제공하므로 응용 프로그램에 더 적합 할 수 있습니다.

+0

감사합니다 :) 나는 간단한 테스트를하고 아주 좋은 해결책입니다. WindowsFormsHost에서 GMap의 WinForms 버전을 사용하려면 코드에서 많은 변경 작업을해야하지만 최선을 다하는 것 같습니다. – hooboe

+0

반갑습니다. WPF 또는 WinForms를 사용할 때 성능 차이가 크다는 것을 알고 있습니까? 나는 아직 이것을 연구 할 기회가 없었다. –

+0

설명서에서 찾을려고했지만 어떤 비교도 찾지 못했습니다. – hooboe