2017-03-10 19 views
2

私は航空移動地図アプリケーションで作業しており、北上ではなく軌跡上の向きが必要です。そのためには、航空機のシンボルではなく、バックグラウンドで地図を回転させる必要があります。誰もGmap.Net winformsでこれを達成しましたか?私はgmap.Bearingプロパティを試して、マップを回転させますが、地図ラベル(都市、州など)も回転します。方法はありますか?Gmap.Netで地図を回転させて追跡する

答えて

1

Gmapローテーションはグラフィックスに回転行列を適用することで機能し、すべてのラベルが実際のイメージの一部であるため回転されます。これは、ほとんどの地図提供と一致しています。あなたの携帯電話でGoogleマップを開き、地図を回転させてみてください。ストリート名のようなすべての汎用ラベルは、マップとともに回転します。

あなたがしようとしていることを達成するための唯一の方法は、地図用のレイヤーと都市、州などのプライマリラベル用のレイヤーの2つのレイヤーを持つ唯一の方法です。ラベルの場所。マーカーを透明に設定し、マーカーのラベル付けをオンにします。地図を回転してもラベルは水平に保たれます。あなたは緯度/経度でほとんどの都市のリストをダウンロードすることができますのはここです:

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

は、私があまりにもマップを回転させる方法を探してきた...

+0

実際にGoogleマップに行った場合、ラベルは回転しません。 –

+0

@ Vaibhav Pandya通りのラベルがあります。州、市、場所のラベルは同じですが、別々のレイヤーです。 –

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 

関連する問題