如何将经度和纬度字符串转换为double?

时间:2012-02-09 22:03:51

标签: c# winforms google-maps

我从谷歌得到了我的经度和优势:

http://maps.google.com/maps/geo?q=Sliedrecht,%20Netherlands&output=csv&oe=utf8&sensor=false

我想使用此结果为地图添加标记:

        if (coordinates.Length == 4 && coordinates[0] == "200")
        {
            var overlay = new GMapOverlay(mapexplr, "overlayTwo");

            overlay.Markers.Add(new GMapMarkerGoogleGreen(new PointLatLng(Convert.ToDouble(coordinates[2]), Convert.ToDouble(coordinates[3]))));
            mapexplr.Overlays.Add(overlay);
        }

问题是我的标记没有显示。我认为这是因为没有以正确的格式提供双打​​。上述链接的结果如下:

200,4,51.8248681,4.7731624

当我将值4.7731624转换为双倍时,我得到47731624,没有点。

所以我的问题是,如何将字符串转换为带有正确位置点的双精度?

2 个答案:

答案 0 :(得分:20)

这可能是由于你的文化 - 听起来好像在这种情况下你想要不变的文化:

double longitude = double.Parse(text, CultureInfo.InvariantCulture);

(您可能希望使用double.TryParse来优雅地处理它不是有效值的可能性。)

答案 1 :(得分:0)

只需使用Double.Parse()并传递包含lat / long coord

的字符串