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

标签 c# winforms google-maps

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

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

我想使用这个结果在我的 map 上添加一个标记:

        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);
        }

问题是我的标记没有显示。我认为这是因为没有以正确的格式提供 double ​​。上面链接的结果是这样的:

200,4,51.8248681,4.7731624

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

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

最佳答案

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

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

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

关于c# - 如何将经度和纬度字符串转换为 double ?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/9219522/

相关文章:

c# - 从子类中替换父类

C# 打印问题 (RichTextBox)

.net - 自动启动智能客户端应用程序

javascript - 如何使用 geoXML3 从外部 url 获取 KML?

c# - 在 C# WPF 应用程序中使用 ffmpeg 编辑 m4b 元数据

c# - 不为空时处理 ConcurrentStack?

c# - 是否可以从 Excel 电子表格 (VBA) 中获取 WinForms "Button"?

c# - Winforms 静态 HandleCreated 或 OnLoad 事件

google-maps - 为什么 map 不起作用而 foreach 却起作用?

javascript - 显示 map 并突出显示某些国家/地区