我从谷歌得到了我的经度和优势:
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
,没有点。
所以我的问题是,如何将字符串转换为带有正确位置点的双精度?
答案 0 :(得分:20)
这可能是由于你的文化 - 听起来好像在这种情况下你想要不变的文化:
double longitude = double.Parse(text, CultureInfo.InvariantCulture);
(您可能希望使用double.TryParse
来优雅地处理它不是有效值的可能性。)
答案 1 :(得分:0)
只需使用Double.Parse()并传递包含lat / long coord
的字符串