C# gmap.net上的多个标记
嗨,我有1000个纬度和经度,我想在地图上显示它们。 我尝试了几种方法,但运气不好……我有一个datagridview,它有client、lat、long和region。每个客户端都有一个区域。我有一个组合框,当我点击组合框区域1时,它应该在地图上显示区域1上的所有客户端。请帮忙C# gmap.net上的多个标记,c#,datagridview,gmap.net,C#,Datagridview,Gmap.net,嗨,我有1000个纬度和经度,我想在地图上显示它们。 我尝试了几种方法,但运气不好……我有一个datagridview,它有client、lat、long和region。每个客户端都有一个区域。我有一个组合框,当我点击组合框区域1时,它应该在地图上显示区域1上的所有客户端。请帮忙 if (comboBox5.SelectedIndex == 0)//(REGION 1) { String Query = " SELECT top Latitude,Longitude FROM[ICP
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);
}
}
if(comboBox5.SelectedIndex==0)/(区域1)
{
String Query=“从[ICPS].[dbo].[Sheet3_-kir]中选择顶部纬度和经度”;
SqlCommand cmdDatabase=新的SqlCommand(查询、条件数据库);
SqlDataReader-myReader;
gMapControl1.MapProvider=GMap.NET.MapProviders.BingMapProvider.Instance;
GMap.NET.GMaps.Instance.Mode=GMap.NET.AccessMode.ServerOnly;
GMapOverlay markersOverlay=新的GMapOverlay(“VCS地图”);
//gMapControl1.Overlays.Add(markersOverlay);
对于(int i=0;i我尝试了几种方法,但运气不好……
请描述到底出了什么问题i输入字符串的格式不正确。var Latitude=double.Parse(dataGridView1.Columns[1]。ToString());这个问题与gmap.net和maps没有任何关系。请检查这个字符串(打印出来,或在调试器会话中查找):dataGridView1.Columns[1].ToString()
。运行时试图说明此字符串不是有效的双精度值。我被过去两天的观点所震惊,但不知道如何处理此语句。只需输出此字符串。或者确保在[ICPS].[dbo].[Sheet3_-kir]的纬度
列中有正确格式的值
table您可能需要添加一两句话来介绍您的答案!
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);