-8

以下のような点座標があります。

-123.118069008,49.2761419674,0 -123.116802056,49.2752350159,0 -123.115385004,494,4943520328,0--123.11491294444444444,94444444444,944444444444444,94444444444,94444444444,94444444444,939982

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 に答える