0
gmap.net을 사용하는 응용 프로그램을 만들었습니다. 지도에는 세 개의 마커가 있습니다. 이제 마커를 클릭하면 새로운 양식이 열리고 다른 양식을 열려면 두 번째 아이콘을 클릭하십시오. gMapControl 당신이 당신의 업체에 클릭 이벤트를 수신에 가입 할 수 OnMarkerClick라는 이벤트가 있습니다C# gmap.net google 마커
using System;
using System.Collections.Generic;
using System.ComponentModel;
using System.Data;
using System.Drawing;
using System.Linq;
using System.Text;
using System.Windows.Forms;
using GMap.NET;
using GMap.NET.MapProviders;
using GMap.NET.WindowsForms;
using GMap.NET.WindowsForms.Markers;
namespace GMap
{
public partial class Form1 : Form
{
GMarkerGoogle marker;
GMapOverlay markerOverlay;
DataTable dt;
int Selekcija = 0;
double LatInicial = 43.1383292506958;
double LngInicial = 20.5198994278908;
double LatTehnicka = 43.1378458151015;
double LngTehnicka = 20.5214631557465;
double LatMedicinska = 43.1324426240355;
double LngMedicinska = 20.5122631788254;
public Form1()
{
InitializeComponent();
}
private void Form1_Load(object sender, EventArgs e)
{
dt = new DataTable();
dt.Columns.Add(new DataColumn("Opis", typeof(string)));
dt.Columns.Add(new DataColumn("Lat", typeof(double)));
dt.Columns.Add(new DataColumn("Long", typeof(double)));
//Ubacivanje podataka u tabelu
dt.Rows.Add("Gimnazija", LatInicial, LngInicial);
dt.Rows.Add("Tehnicka skola", LatTehnicka, LngTehnicka);
dt.Rows.Add("Medicinska skola", LatMedicinska, LngMedicinska);
dataGridView1.DataSource = dt;
//Vidljivost pojedinih kolona
dataGridView1.Columns[1].Visible = false;
dataGridView1.Columns[2].Visible = false;
gMapControl1.DragButton = MouseButtons.Left;
gMapControl1.CanDragMap = true;
gMapControl1.MapProvider = GMapProviders.GoogleMap;
gMapControl1.Position = new PointLatLng(LatInicial, LngInicial);
gMapControl1.MinZoom = 0;
gMapControl1.MaxZoom = 24;
gMapControl1.Zoom = 17;
gMapControl1.AutoScroll = true;
// Obelezivac
markerOverlay = new GMapOverlay("markers");
marker = new GMarkerGoogle(new PointLatLng(LatInicial, LngInicial),GMarkerGoogleType.green);
markerOverlay.Markers.Add(marker);
//marker.ToolTipMode = MarkerTooltipMode.Always;
marker.ToolTipText = string.Format("Gimnazija: \n Latituda: {0} \n Longituda: {1}", LatInicial, LngInicial);
gMapControl1.Overlays.Add(markerOverlay);
markerOverlay = new GMapOverlay("markers");
marker = new GMarkerGoogle(new PointLatLng(LatTehnicka, LngTehnicka), GMarkerGoogleType.green);
markerOverlay.Markers.Add(marker);
//marker.ToolTipMode = MarkerTooltipMode.Always;
marker.ToolTipText = string.Format("Tehnicka skola: \n Latituda: {0} \n Longituda: {1}", LatTehnicka, LngTehnicka);
gMapControl1.Overlays.Add(markerOverlay);
markerOverlay = new GMapOverlay("markers");
marker = new GMarkerGoogle(new PointLatLng(LatMedicinska, LngMedicinska), GMarkerGoogleType.green);
markerOverlay.Markers.Add(marker);
//marker.ToolTipMode = MarkerTooltipMode.Always;
marker.ToolTipText = string.Format("Medicinska skola: \n Latituda: {0} \n Longituda: {1}", LatMedicinska, LngMedicinska);
gMapControl1.Overlays.Add(markerOverlay);
}
private void button1_Click(object sender, EventArgs e)
{
dt.Rows.Add(txtOpis.Text, txtLatituda.Text, txtLongituda.Text);
}
private void SelekcijaSkole(object sender, DataGridViewCellMouseEventArgs e)
{
Selekcija = e.RowIndex;
txtOpis.Text = dataGridView1.Rows[Selekcija].Cells[0].Value.ToString();
txtLatituda.Text = dataGridView1.Rows[Selekcija].Cells[1].Value.ToString();
txtLongituda.Text = dataGridView1.Rows[Selekcija].Cells[2].Value.ToString();
marker.Position = new PointLatLng(Convert.ToDouble(txtLatituda.Text), Convert.ToDouble(txtLongituda.Text));
gMapControl1.Position = marker.Position;
}
private void gMapControl1_MouseDoubleClick(object sender, MouseEventArgs e)
{
double lat = gMapControl1.FromLocalToLatLng(e.X, e.Y).Lat;
double lng = gMapControl1.FromLocalToLatLng(e.X, e.Y).Lng;
txtLatituda.Text = lat.ToString();
txtLongituda.Text = lng.ToString();
marker.Position = new PointLatLng(lat, lng);
marker.ToolTipText = string.Format("Koordinate: \n Latituda {0} \n Longituda {1}", lat, lng);
}
private void button2_Click(object sender, EventArgs e)
{
dataGridView1.Rows.RemoveAt(Selekcija);
}
private void button3_Click(object sender, EventArgs e)
{
gMapControl1.MapProvider = GMapProviders.GoogleChinaSatelliteMap;
}
private void button4_Click(object sender, EventArgs e)
{
gMapControl1.MapProvider = GMapProviders.GoogleMap;
}
private void button5_Click(object sender, EventArgs e)
{
gMapControl1.MapProvider = GMapProviders.GoogleTerrainMap;
}
private void gMapControl1_OnMarkerClick(GMapMarker item, MouseEventArgs e)
{
}
}
}
질문은 무엇입니까? – Paolo
세 가지 다른 마커의 좌표 (위도와 경도)를 통해 마커를 클릭하여 폼을 열고 두 번째 마커를 클릭하여 다른 폼을 열고 세 번째 마커를 클릭하여 세 번째 폼을 엽니 다. 세 가지 형태 모두 서로 다릅니다. http://imgur.com/a/DoSTr –
내 대답이 도움이 되었습니까? 그렇다면 질문에 답을 표시해주십시오. – Bearcat9425