我从谷歌获取经度和纬度:
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/