如何将经度和纬度字符串转换为双精度

本文关键字:字符串 转换 双精度 纬度 经度 | 更新日期: 2023-09-27 18:23:53

我从谷歌获取经度和纬度:

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,没有点。

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

如何将经度和纬度字符串转换为双精度

很可能是由于您的文化-在这种情况下,听起来您想要不变的文化:

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

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

只需使用Double.Parse()并传递包含lat/long坐标的字符串