110,570
社区成员
发帖
与我相关
我的任务
分享
//实体
public class demo
{
public int id { get; set; }--用于显示的时候看,.无实际意义.
public double lat { get; set; }
public double lng { get; set; }
}
//插入测试数据
var array = new List<demo>();
array.Add(new demo() { id = 1, lat = 30.000000, lng = 120.0001 });
array.Add(new demo() { id = 2, lat = 30.000000, lng = 120.0002 });
array.Add(new demo() { id = 3, lat = 30.000000, lng = 120.0003 });
array.Add(new demo() { id = 4, lat = 30.000000, lng = 120.0004 });
array.Add(new demo() { id = 5, lat = 30.000000, lng = 120.0005 });
public static double GetDistance(double lat1, double lng1, double lat2, double lng2)
{
try
{
var b = Math.PI / 180;
var c = Math.Sin((lat2 - lat1) * b / 2);
var d = Math.Sin((lng2 - lng1) * b / 2);
var a = c * c + d * d * Math.Cos(lat1 * b) * Math.Cos(lat2 * b);
return 12756274 * Math.Atan2(Math.Sqrt(a), Math.Sqrt(1 - a));
}
catch (Exception)
{
return 0;
}
}
var q = array.OrderBy(d => d.lng).ToList();
for (int i = 0; i < q.Count; i++)
{
var 当前 = q[i];
if (i != 0)
{
var 上一个 = q[i - 1];
var m = Common.GPSHelper.GetDistance(当前.lat, 当前.lng, 上一个.lat, 上一个.lng);
if (m < 20)
{
q[i].lng = 上一个.lng + 0.0002;
}
}
}
Console.WriteLine(q.ToJson(true));
array.Add(new demo() { id = 6, lat = 30.000000, lng = 120.0006 });
if(px==1){
x = parseFloat(x*q)+(k*w);
// alert(x);
if(py==1){
y = parseFloat(y*q)+(l*w);
}else{
y = parseFloat(y*q)-(l*w);
}
}else{
x = parseFloat(x*q)-(k*w);
if(py==1){
y = parseFloat(y*q)+(l*w);
}else{
y = parseFloat(y*q)-(l*w);
}
}
C#我就不知道咯,希望有点参考价值List<int> list = new List<int>();
list.Add(1);
list.Add(4);
list.Add(6);
list.Add(9);
list = list.OrderBy(i => i).ToList();
for (var i = 1; i < list.Count; i++)
{
var diff = list[i] - list[i - 1];
if (diff <= 2)
{
list[i] = list[i - 1] + 3;
}
}
Console.WriteLine(string.Join(",", list));
不过我还是想说只管一个纬度肯定是不对滴