2017-03-10 15 views
2

항공 이동지도 응용 프로그램에서 작업 중이며 북쪽 방향 대신 추적 방향이 있어야합니다. 그렇게하기 위해서는 항공기 심볼 대신 백그라운드에서지도를 회전시켜야합니다. 누구나 Gmap.Net winforms로 아직 성취 했습니까? gmap.vearing 속성을 시도하고지도를 회전하지만지도 레이블 (도시, 주 등)도 회전합니다. 방법이 있습니까?Gmap.Net의지도 회전으로 추적 가능합니다.

답변

1

Gmap 회전은 그래픽에 회전 행렬을 적용하여 작동하며 모든 레이블이 실제 이미지의 일부이기 때문에 회전됩니다. 이것은 대부분의지도 제공과 일치합니다. 휴대 전화에서 Google지도를 열고지도를 회전하십시오. 거리 이름과 같은 모든 일반 레이블은지도와 함께 회전합니다.

당신이하려는 일을 성취하기위한 유일한 방법은 두 개의 레이어, 즉 맵용과 도시, 주 등등과 같은 기본 레이블 용 레이어를 만드는 것입니다. 두 번째 레이어는 라벨의 위치. 마커를 투명하게 설정하고 마커의 라벨을 켜면지도가 회전해도 레이블이 수평을 유지해야합니다.

나는 방법을 찾고있다 쉬운 방법이 있었다

https://www.maxmind.com/en/free-world-cities-database

위시 ...

+0

사실 Google지도로 이동하면 레이블이 회전하지 않습니다. –

+0

@ Vaibhav Pandya 길 찾기 라벨이 있습니다. 주, 도시 및 위치 레이블은 있지만 별도의 레이어입니다. –

1

너무지도를 회전 : 당신은 위도/LNG 대부분의 도시 목록을 다운로드 할 수있는 여기입니다 , 베어링 속성을 발견하고 그것을 사용하는 방법을 몰랐다. 둘 다지도의 회전에 대해 이야기하고 있지만 누군가이 속성을 사용하는 방법을 알고 싶다면 아무 코드도 없습니다. 둘 다 수행하는 방법을 알고 있으므로이 속성을 사용하는 방법을 지정할 필요가 없기 때문입니다. 어쨌든, 대답을 찾고,이 스레드를 발견, 그래서 나를 여기에 조각을 넣어 보자.

나는 이것이 당신의 해결책에 대한 해답이 아니라는 것을 알고 있지만이 스레드에서이 속성을 사용하는 방법을 아는 것이 누군가에게 유용 할 수 있음을 알고 있습니다.

베어링 속성은 단일 유형이며, 누군가가지도를 회전하고자하는 경우,이 속성은 다음과 같이 사용됩니다

GMapControl.Bearing += 10 

또는

GMapControl.Bearing -= 10 

그리고 가치 당신이 작성하는 방법 도로 회전 각도. '+ = 10'을 입력하면지도를 10도 회전합니다. 그리고 '- = 10'을 입력하면 반대쪽으로 10도 회전합니다.

나는 이런 식으로이 컨트롤을 사용하고 있습니다 :

Private Sub RotationButton_Click(sender As Object, e As EventArgs) Handles RotationButton.Click 
    GMapControl.Bearing += 10 
End Sub 

나는이 사람에게 도움이 될 수 있기를 바랍니다.