Mapview, contrôle affichant une liste d'item localisés par des coordonnées

Description

MapView est un contrôle qui affiche une carte du monde (Modifiable) et des items suivant leurs coordonnées géographique. Sont fonctionnement est proche d'un ListView.

Les items sont clickable et envoient des events souris au contrôle parent. Chaque Item affiche du texte et une image positionnable autour du point central. (voir les propriétés dans le Property Grid "Items")

L'exemple est fournis avec un carte du monde qui peut être changé a volonté a condition de respecter les proportions de 360° * 180° centré sur 0 / 0.

Source / Exemple :


// Test de MapView dans Form1
            this.mapView1 = new MapView.MapView();
            this.mapViewItem1 = new MapView.MapViewItem();
            this.mapViewItem2 = new MapView.MapViewItem();
            this.mapViewItem3 = new MapView.MapViewItem();
            this.mapViewItem4 = new MapView.MapViewItem();// 
            // mapView1
            // 
            this.mapView1.BackColor = System.Drawing.SystemColors.Window;
            this.mapView1.Dock = System.Windows.Forms.DockStyle.Fill;
            this.mapView1.Font = new System.Drawing.Font("Microsoft Sans Serif", 8.25F, System.Drawing.FontStyle.Regular, System.Drawing.GraphicsUnit.Point, ((byte)(0)));
            this.mapView1.Image = global::TestMapView2.Properties.Resources.wdb; // ftp://ftp.ngdc.noaa.gov/GLOBE_DEM/pictures/GLOBALeb3litcolshade_ver2.jpg
            this.mapView1.Items.Add(this.mapViewItem1);
            this.mapView1.Items.Add(this.mapViewItem2);
            this.mapView1.Items.Add(this.mapViewItem3);
            this.mapView1.Items.Add(this.mapViewItem4);
            this.mapView1.Location = new System.Drawing.Point(0, 0);
            this.mapView1.Name = "mapView1";
            this.mapView1.Size = new System.Drawing.Size(515, 311);
            this.mapView1.TabIndex = 0;
            this.mapView1.Text = "mapView1";
            this.toolTip1.SetToolTip(this.mapView1, "Clicker sur une ville.");
            this.mapView1.ItemSelectionChanged += new MapView.MapViewItemSelectionChangedEventHandler(this.mapView1_ItemSelectionChanged);
            this.mapView1.ItemMouseClick += new System.Windows.Forms.MouseEventHandler(this.mapView1_ItemMouseClick);
            this.mapView1.ItemDoubleClick += new System.EventHandler(this.mapView1_ItemDoubleClick);
            this.mapView1.ItemMouseHover += new System.EventHandler(this.mapView1_ItemMouseHover);
            // 
            // mapViewItem1
            // 
            this.mapViewItem1.BackColor = System.Drawing.Color.White;
            this.mapViewItem1.ForeColor = System.Drawing.Color.Maroon;
            this.mapViewItem1.Image = global::TestMapView2.Properties.Resources.B_Matussiere_4;
            this.mapViewItem1.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
            this.mapViewItem1.Lattitude = 44F;
            this.mapViewItem1.Longitude = 2F;
            this.mapViewItem1.Text = "Toulouse";
            this.mapViewItem1.TextAlign = System.Drawing.ContentAlignment.MiddleRight;
            // 
            // mapViewItem2
            // 
            this.mapViewItem2.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(255)))), ((int)(((byte)(255)))), ((int)(((byte)(192)))));
            this.mapViewItem2.Image = global::TestMapView2.Properties.Resources._0;
            this.mapViewItem2.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
            this.mapViewItem2.Lattitude = 43.5F;
            this.mapViewItem2.Longitude = -1F;
            this.mapViewItem2.Text = "Bordeaux";
            this.mapViewItem2.TextAlign = System.Drawing.ContentAlignment.TopLeft;
            // 
            // mapViewItem3
            // 
            this.mapViewItem3.ForeColor = System.Drawing.Color.FromArgb(((int)(((byte)(128)))), ((int)(((byte)(255)))), ((int)(((byte)(128)))));
            this.mapViewItem3.Image = global::TestMapView2.Properties.Resources._0;
            this.mapViewItem3.ImageAlign = System.Drawing.ContentAlignment.MiddleCenter;
            this.mapViewItem3.Lattitude = 43.5F;
            this.mapViewItem3.Longitude = 5F;
            this.mapViewItem3.Text = "Marseille";
            // 
            // mapViewItem4
            // 
            this.mapViewItem4.ForeColor = System.Drawing.SystemColors.ControlText;
            this.mapViewItem4.Lattitude = 50F;
            this.mapViewItem4.Longitude = 15F;

Conclusion :


Pas de bugs connus pour l'instant, mais surement des améliorations a faire.

L'mage que j'utilise est a cette adresse ftp://ftp.ngdc.noaa.gov/GLOBE_DEM/pictures/GLOBALeb3litcolshade_ver2.jpg.

Codes Sources

A voir également

Vous n'êtes pas encore membre ?

inscrivez-vous, c'est gratuit et ça prend moins d'une minute !

Les membres obtiennent plus de réponses que les utilisateurs anonymes.

Le fait d'être membre vous permet d'avoir un suivi détaillé de vos demandes et codes sources.

Le fait d'être membre vous permet d'avoir des options supplémentaires.