一个C#文件流函数,它应该返回一组双坐标

本文关键字:一组 坐标 返回 文件 函数 一个 | 更新日期: 2024-09-20 07:56:56

我使用这个函数从文本文件中返回两个坐标和一个名称。一切都正常,但是当我试图在另一个函数中使用这些坐标时,我似乎得到了两个integers而不是doubles。下面是使用getter时的实际代码和输出。

输入文件示例:

delfshaven 51.9229006954, 4.43681055082
delfshaven 51.9229377766, 4.43726467466

代码:

public void ReadCoords(string path, string naam)
{
    string line;
    int endname;
    int endfirstcoord;
    int i;
    string name;
    string coord1;
    string coord2;
    double north, east;
    var fileStream = new FileStream(path, FileMode.Open, FileAccess.Read);
    using (StreamReader reader = new StreamReader(fileStream, Encoding.ASCII))
    {
        while (!reader.EndOfStream)
        {
            line = reader.ReadLine();
            if (line != "")
            {
                i = 0;
                while (line[i] != ' ')
                {
                    i++;
                }
                endname = i;
                name = line.Substring(0, i);
                i++;
                if (naam == name)
                {
                    while (line[i] != ',')
                    {
                        i++;
                    }
                    endfirstcoord = i;
                    coord1 = line.Substring(endname + 1, i - 1 - (endname));
                    coord2 = line.Substring(i + 2, line.Length - (i + 2));
                    north = double.Parse(coord1);
                    east = double.Parse(coord2);
                    deelgemeente.Add(new PointLatLng(north, east));
                }
            }
        }
    }
}

输出:

{Lat=519226886783, Lng=443421830655}
{Lat=519227198819, Lng=443459846581}
{Lat=51922824973, Lng=443591425503}
{Lat=519228427681, Lng=443610117779}
{Lat=519229006954, Lng=443681055082}

提前谢谢。

一个C#文件流函数,它应该返回一组双坐标

感谢您的帮助。我搞定了。出现问题是因为我的本地笔记本电脑设置。它在给替身加弦时遇到了麻烦。

north = double.Parse(coord1, CultureInfo.InvariantCulture);
east = double.Parse(coord2, CultureInfo.InvariantCulture);

而不是

north = double.Parse(coord1);
east = double.Parse(coord2);

修复它。