我正在研究航空移动地图应用程序,它需要具有跟踪方向而不是北向上。为了做到这一点,我将不得不在背景中旋转地图而不是飞机符号。有没有人用Gmap.Net winforms做到这一点。我尝试了gmap.Bearing属性,它确实旋转了地图,但地图标签(城市,州等)也在旋转。有办法吗?
答案 0 :(得分:1)
Gmap旋转的工作原理是将旋转矩阵应用于图形,并且因为所有标签都是实际图像的一部分,所以它们也会旋转。这与大多数地图提供的一致。尝试在手机上打开谷歌地图并旋转地图。所有通用标签(如街道名称)都将随地图一起旋转。
完成您要做的事情的唯一方法是拥有两个图层,一个用于地图,另一个用于主要标签,例如城市,州等。您的第二层将具有与该位置对应的标记标签。将标记设置为透明,打开标记的标签,即使旋转地图,标签也应保持水平。您可以在这里通过lat / lng下载大多数城市的列表:
https://www.maxmind.com/en/free-world-cities-database
希望有一种更简单的方法......
答案 1 :(得分:1)
我一直在寻找旋转地图的方法,我找到了轴承属性,我也不知道如何使用它。你们两个都在谈论地图的旋转,但是如果有人想知道如何使用这个属性,那么就没有代码,因为你们都知道如何去做,所以没有必要提出如何使用这个属性。无论如何,寻找答案,我找到了这个帖子,所以让我把一块我放在这里。
我知道这不是你的解决方案的答案,但也许看看如何在这个线程中使用这个属性对某人有用。
轴承属性是单一类型,如果有人想要旋转地图,则使用此属性:
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
我希望这对某人有用。