110.66008217, 21.56141433
110.65471817, 21.55602517
110.64344033, 21.54570050
110.63638833, 21.54144150
110.62926650, 21.53747900
110.62183617, 21.53321233
……
110.60921567, 21.52413833
110.60509683, 21.52104433
110.60017567, 21.51747633以上为一组经纬度数据,一行代表一个地点,包含经纬度,用逗号隔开。比如第一个地点的经度为lon1=110.66008217,纬度为lat1=21.56141433,第二个地点的经度为lon2=110.65471817,纬度为lat2=21.55602517,依次类推。
现在想计算总距离,需要先计算各相邻两个地点的距离,再进行累加。而计算相邻两个地点的距离,需要用到相邻两行的四个数据。
foreach (string s in richTextBox1.Lines)
{
string[] lonlat0 = s.Split(',');
string strlon0 = lonlat0[0];
string strlat0 = lonlat0[1];
double lon0 = Convert.ToDouble(strlon0);
double lat0 = Convert.ToDouble(strlat0);
这样只是取出了一行的两个数据,如何再取出下一行的两个数据?
求教高手,谢谢!
110.65471817, 21.55602517
110.64344033, 21.54570050
110.63638833, 21.54144150
110.62926650, 21.53747900
110.62183617, 21.53321233
……
110.60921567, 21.52413833
110.60509683, 21.52104433
110.60017567, 21.51747633以上为一组经纬度数据,一行代表一个地点,包含经纬度,用逗号隔开。比如第一个地点的经度为lon1=110.66008217,纬度为lat1=21.56141433,第二个地点的经度为lon2=110.65471817,纬度为lat2=21.55602517,依次类推。
现在想计算总距离,需要先计算各相邻两个地点的距离,再进行累加。而计算相邻两个地点的距离,需要用到相邻两行的四个数据。
foreach (string s in richTextBox1.Lines)
{
string[] lonlat0 = s.Split(',');
string strlon0 = lonlat0[0];
string strlat0 = lonlat0[1];
double lon0 = Convert.ToDouble(strlon0);
double lat0 = Convert.ToDouble(strlat0);
这样只是取出了一行的两个数据,如何再取出下一行的两个数据?
求教高手,谢谢!
{
string s = richTextBox1.Text;
string[] str = s.Split(',','\n');
double totalDistance = 0;
for (int i = 0; i < str.Rank; i = i + 2)
{
string strlon0 = str[i];
string strlat0 = str[i + 1];
string strlon1 = str[i + 2];
string strlat1 = str[i + 3];
double lon0 = Convert.ToDouble(strlon0);
double lat0 = Convert.ToDouble(strlat0);
double lon1 = Convert.ToDouble(strlon1);
double lat1 = Convert.ToDouble(strlat1);
double lat = (lat1 - lat0) * 111199.233;
double lon = (lon1 - lon0) * 111199.233 * System.Math.Cos((lat0 + lat1) / 2.0);
double dbDistance = System.Math.Sqrt(System.Math.Pow(lon, 2) + System.Math.Pow(lat, 2));
totalDistance += dbDistance;
}
label1.Text = totalDistance.ToString();
}为什么我的for语句不循环?
2.你这样i肯定溢出,如果i=str.Length-1,那i+1,i+2,i+3都成多少了,所以i<str.Length-3
rank是秩,str是一维矩阵,秩就是1,这个循环根本就进不去。