2017-03-10 1 views
2

Je travaille sur une application de carte de mouvement de l'aviation et il faut qu'elle soit orientée vers le haut plutôt que vers le nord. Pour ce faire, je devrais faire pivoter la carte en arrière-plan au lieu du symbole de l'avion. Quelqu'un at-il déjà accompli cela avec Winforms Gmap.Net. J'ai essayé la propriété gmap.Bearing et elle fait pivoter la carte mais les étiquettes de carte (villes, états, etc.) tournent également. Y a-t-il un moyen?Rotation de la carte dans Gmap.Net pour la faire suivre

Répondre

1

La rotation Gmap fonctionne en appliquant une matrice de rotation aux graphiques, et comme toutes les étiquettes font partie de l'image réelle, elles sont également pivotées. Ceci est cohérent avec la plupart des cartes fournies. Essayez d'ouvrir google maps sur votre téléphone et faites pivoter la carte. Toutes les étiquettes génériques, comme les noms de rue, tourneront avec la carte. La seule façon d'accomplir ce que vous essayez de faire est d'avoir deux couches, une pour votre carte, et une pour les étiquettes primaires telles que la ville, les états, etc .. votre deuxième couche aura des marqueurs correspondant à la emplacement de l'étiquette. Réglez le marqueur sur transparent, activez l'étiquetage du marqueur et les étiquettes doivent rester horizontales même lorsque la carte est tournée. Voici où vous pouvez télécharger une liste des villes les plus par lat/lng:

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

souhaite qu'il y avait un moyen plus facile ...

+0

En fait, si je vais à google maps, les étiquettes ne tournent pas. –

+0

@ Vaibhav Pandya Les étiquettes de rue font. Les étiquettes d'état, de ville et d'emplacement le font, mais elles sont séparées. –

1

Je cherchais le moyen de faire pivoter la carte trop , J'ai trouvé la propriété portant et je ne savais pas comment l'utiliser. Vous parlez tous deux de la rotation de la carte, mais il n'y a pas de code si quelqu'un veut savoir comment utiliser cette propriété, parce que vous savez tous les deux comment faire, il n'est donc pas nécessaire de mettre en place cette propriété. Quoi qu'il en soit, à la recherche d'une réponse, j'ai trouvé ce fil, alors permettez-moi de mettre un morceau de moi ici.

Je sais que ce n'est pas une réponse à votre solution, mais peut-être de voir comment utiliser cette propriété dans ce fil pourrait être utile pour quelqu'un.

La propriété de roulement est de type simple, et si quelqu'un veut faire pivoter la carte, cette propriété est utilisée comme ceci:

GMapControl.Bearing += 10 

ou

GMapControl.Bearing -= 10 

et la valeur que vous des moyens d'écriture les degrés que vous voulez faire pivoter la carte. Si vous mettez '+ = 10', vous faites pivoter la carte de 10 degrés. Et si vous mettez '- = 10', vous faites une rotation de 10 degrés du côté opposé.

Je l'ai utilisé comme ce contrôle ceci:

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

J'espère que cela pourrait être utile pour quelqu'un.