-8

我有一些点坐标,如下所示:

-123.118069008,49.2761419674,0 -123.116802056,49.2752350159,0 -123.115385004,49.2743520328,0 -123.114912944,49.2738039982,.............. -123.118069008,49.2761419674,0

你能告诉我如何使用 C# 创建这样的东西:

new google.maps.LatLng(-123.118069008,49.2761419674),
new google.maps.LatLng(-123.116802056,49.2752350159),
.....
new google.maps.LatLng(-123.118069008,49.2761419674)];

如您所见,我需要:

  1. 添加“新的 google.maps.LatLng()”
  2. 从 -123.118069008,49.2761419674,0 中删除 0
  3. 解析它直到最后一行以 ; 结尾

谢谢

4

2 回答 2

1

这是我所知道的最简单的方法......

        var txt = "-123.118069008,49.2761419674,0 -123.116802056,49.2752350159,0 -123.115385004,49.2743520328,0";
        var output = new StringBuilder();
        foreach (var group in txt.Split(' '))
        {
            var parts = group.Split(',');
            var lat = double.Parse(parts[0]);
            var lng = double.Parse(parts[1]);
            if (output.Length > 0)
                output.AppendLine(",");
            output.Append("new google.maps.LatLng("+lat+","+lng+")");
        }
        MessageBox.Show("["+output+"]");

结果是……

[新 google.maps.LatLng(-123.118069008,49.2761419674),

新的 google.maps.LatLng(-123.116802056,49.2752350159),

新的 google.maps.LatLng(-123.115385004,49.2743520328)]

于 2013-03-07T21:59:34.193 回答
0

未经测试且未编译,但这应该可以帮助您入门

var items = data.Split(',');
for(int i = 0; i < items.Length; i = i + 2)
{
    var lat = int.Parse(items[i].Replace("0-","-"));
    var lng = int.Parse(items[i+1]);
}

你会想做数组边界检查等,希望这仍然有帮助。

于 2013-03-07T21:54:50.403 回答