在GMap.NET上放置多个标记

4

你好,我有1000个纬度和经度,想要在地图上将它们全部显示出来。我已经尝试了几种方法,但都没有成功……我有一个数据网格视图,其中包含客户、纬度、经度和区域。每个客户都有一个区域。我有一个下拉框,当我点击下拉框的区域1时,它应该在地图上显示所有区域1的客户,这可行吗?请帮忙。

if (comboBox5.SelectedIndex == 0)//(REGION 1)
{
    String Query = " SELECT top  Latitude,Longitude  FROM[ICPS].[dbo].[Sheet3_kir]   ";
    SqlCommand cmdDatabase = new SqlCommand(Query, conDatabase);
    SqlDataReader myReader;
    gMapControl1.MapProvider = GMap.NET.MapProviders.BingMapProvider.Instance;
    GMap.NET.GMaps.Instance.Mode = GMap.NET.AccessMode.ServerOnly;

    GMapOverlay markersOverlay = new GMapOverlay("VCS MAP");
    //gMapControl1.Overlays.Add(markersOverlay); 

    for (int i = 0; i <= dataGridView1.Rows.Count; i++)
    {
        foreach (DataGridViewRow row in dataGridView1.Rows)
        {
            var Latitude = double.Parse(dataGridView1.Columns[1].ToString());
            var Longitude = double.Parse(dataGridView1.Columns[2].ToString());
            gMapControl1.Position = new PointLatLng(Latitude, Longitude);
            // GMarkerGoogle marker = new GMarkerGoogle(new PointLatLng(float.Parse(this.dataGridView1.Columns[1].ToString), float.Parse(this.textBox26.Text)),
            // GMarkerGoogleType.green);
            GMarkerGoogle m = new GMarkerGoogle(gMapControl1.Position, GMarkerGoogleType.green_pushpin);
            //markersOverlay.Markers.Add(m);
        }
    }

1
我尝试了几种方法,但都没有成功.....请描述具体出了什么问题。 - default locale
输入的字符串格式不正确。 var Latitude = double.Parse(dataGridView1.Columns[1].ToString()); - kiran v
我被这个语句困扰了两天,但不知道该怎么处理。 - kiran v
当我加载数据网格视图时,我的纬度和经度列中有一些空值,这可能是问题吗?如果是的话,我该如何摆脱它们? - kiran v
错误在于经纬度列表。 - kiran v
显示剩余8条评论
2个回答

0
            MySqlDataAdapter da = new MySqlDataAdapter("select * from sinkhole where sinkhole_status = '" + "Active" + "'", Conn);
            MySqlCommandBuilder cBuilder = new MySqlCommandBuilder(da);

            DataTable dataTable = new DataTable();
            DataSet ds = new DataSet();
            da.Fill(dataTable);

            for (int i = dataTable.Rows.Count - 1; i >= 0; i--)
            {
                double lng = double.Parse(dataTable.Rows[i][4].ToString());
                double lat = double.Parse(dataTable.Rows[i][3].ToString());
                string location = dataTable.Rows[i][2].ToString();
                string name = dataTable.Rows[i][1].ToString();
                string desciption = dataTable.Rows[i][5].ToString();

                GMapOverlay markersOverlay = new GMapOverlay(map, "marker");
                GMapMarkerGoogleGreen marker = new GMapMarkerGoogleGreen(new PointLatLng(lat, lng));
                markersOverlay.Markers.Add(marker);
                //marker.ToolTipMode = MarkerTooltipMode.Always;
                marker.ToolTip = new GMapRoundedToolTip(marker);
                marker.ToolTipText = "Coordinates: (" + Convert.ToString(lat) + "," + Convert.ToString(lng) + ")" + "\nLocation: " + location + "\nName: " + name;
                map.Overlays.Add(markersOverlay);

4
你或许应该加上一两句话来介绍你的回答! - franssu

0
 for (int i = 0; i < dataGridView1.Rows.Count; ++i)
      {
        double lat = Convert.ToDouble(dataGridView1.Rows[i].Cells[9].Value) ; 
        double    lng = Convert.ToDouble(dataGridView1.Rows[i].Cells[10].Value);
           string Vehicle = Convert.ToString(dataGridView1.Rows[i].Cells[5].Value);
           string name = Convert.ToString(dataGridView1.Rows[i].Cells[1].Value);
        string   Adress = Convert.ToString(dataGridView1.Rows[i].Cells[2].Value);

            MapaContr.MapProvider = GMapProviders.GoogleHybridMap;

            GMapOverlay markersOverlay = new GMapOverlay("markers");
            GMarkerGoogle marker = new GMarkerGoogle(new PointLatLng(lat, lng), GMarkerGoogleType.lightblue);
            markersOverlay.Markers.Add(marker);
           marker.ToolTipMode = MarkerTooltipMode.Always;
            marker.ToolTip = new GMapRoundedToolTip(marker);
            marker.ToolTipText =  "Adress: " + Adress + "\nIme: " + name + "\nVehicle:" + Vehicle   ;
            MapaContr.Overlays.Add(markersOverlay);

我已经为从MySql数据库和datagridView(dataGridView1)解决方案中的多个标记创建了解决方案。它非常精确且易于管理。


目前你的回答不够清晰,请编辑并添加更多细节,以帮助其他人理解它如何回答问题。你可以在帮助中心找到有关如何编写好答案的更多信息。 - Community

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接